博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js--DOM事件绑定
阅读量:5796 次
发布时间:2019-06-18

本文共 1599 字,大约阅读时间需要 5 分钟。

js事件绑定

JavaScript 有三种事件模型:

  • 内联模型
  • 脚本模型
  • DOM2 模型
  1. 内联模型

    //基本废除不用
  2. 脚本模型

    //基本不用var input = document.getElementsByTagName('input')[0]; //得到 input 对象  input.onclick = function () { //匿名函数执行  alert('Lee');};事件处理函数  影响的元素 何时发生onabort 图像 当图像加载被中断时onblur 窗口、框架、所有表单对象 当焦点从对象上移开时onchange 输入框,选择框和文本区域 当改变一个元素的值且失去焦点时onclick 链接、按钮、表单对象、图像映射区域 当用户单击对象时ondblclick 链接、按钮、表单对象 当用户双击对象时ondragdrop 窗口 当用户将一个对象拖放到浏览器窗口时onError 脚本 当脚本中发生语法错误时onfocus 窗口、框架、所有表单对象 当单击鼠标或者将鼠标移动聚焦到窗口或框架时onkeydown 文档、图像、链接、表单 当按键被按下时onkeypress 文档、图像、链接、表单 当按键被按下然后松开时onkeyup 文档、图像、链接、表单 当按键被松开时onload 主题、框架集、图像 文档或图像加载后onunload 主体、框架集 文档或框架集卸载后onmouseout 链接 当图标移除链接时onmouseover 链接 当鼠标移到链接时onmove 窗口 当浏览器窗口移动时onreset 表单复位按钮 单击表单的 reset 按钮onresize 窗口 当选择一个表单对象时onselect 表单元素 当选择一个表单对象时onsubmit 表单 当发送表格到服务器时
  3. 内联模型

    “DOM2 级事件”定义了两个方法,用于添加事件和删除事件处理程序的操作:
    addEventListener()和 removeEventListener()。所有 DOM 节点中都包含这两个方法,并且它们都接受 3 个参数;事件名、函数、冒泡或捕获的布尔值(true 表示捕获,false 表示冒泡)

    window.addEventListener('load', function () {  alert('Lee');}, false);window.removeEventListener('load', function () {  alert('Mr.Lee');}, false)

PS: IE 实现了与 DOM 中类似的两个方法:attachEvent()和 detachEvent()。这两个方法接受

相同的参数:事件名称和函数。
在使用这两组函数的时候,先把区别说一下:

1. IE 不支持捕获,只支持冒泡;2. IE 添加事件不能屏蔽重复的函数;3. IE 中的 this 指向的是 window 而不是 DOM 对象。4. 在传统事件上,IE 是无法接受到 event 对象的,但使用了 attchEvent()却可以,但有些区别。```javascriptwindow.attachEvent('load', function () {  alert('Lee');}, false);window.detachEvent('load', function () {  alert('Mr.Lee');}, false)```

PS:IE 中的事件绑定函数 attachEvent()和 detachEvent()可能在实践中不去使用,有几个

原因:1.IE9 就将全面支持 W3C 中的事件绑定函数;2.IE 的事件绑定函数无法传递 this;3.IE
的事件绑定函数不支持捕获;4.同一个函数注册绑定后,没有屏蔽掉;5.有内存泄漏的问题

转载地址:http://gabfx.baihongyu.com/

你可能感兴趣的文章
maven常用命令
查看>>
开发者论坛一周精粹(第五十五期) 全站HTTPS之OSS教程 一次可以备案几个网站?...
查看>>
(干货)Linux学习资源推荐
查看>>
论国人的素质和一个公司的商业道德
查看>>
android ios主流浏览器User-Agent
查看>>
Oracle-09:聚合函数
查看>>
一分钟快速入门openstack
查看>>
一个好的管理者:场上暴君,场下朋友;工作魔鬼,生活好人
查看>>
蓝图(Blueprint)详解
查看>>
Spark之SQL解析(源码阅读十)
查看>>
Android图片添加水印图片并把图片保存到文件存储
查看>>
C#字符串的不变性
查看>>
前端路由简介以及vue-router实现原理
查看>>
当TC遇到AI
查看>>
kafka-0.10.0官网翻译(一)入门指南
查看>>
【南京Meetup】不断迭代,严苛细节,最终性能如何满足? 基于ELK的大数据平台实践分享...
查看>>
(转)机器学习:偏差处理(2)
查看>>
比特币系统采用的公钥密码学方案和ECDSA签名算法介绍——第二部分:代码实现(C语言)...
查看>>
分享15款很实用的 Sass 和 Compass 工具
查看>>
AMD优势: 与众不同 选择丰富
查看>>