js中DOM事件绑定分析


Posted in Javascript onMarch 18, 2018

js事件绑定

JavaScript 有三种事件模型:

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

1、内联模型

//基本废除不用
<input type="button" value="按钮" onclick="alert('Lee');" />
<input type="button" value="按钮" onclick="box();" />

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()却可以,但有些区别。
```javascript
window.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.有内存泄漏的问题

Javascript 相关文章推荐
Javascript中的常见排序算法
Mar 27 Javascript
jQuery之ajax技术的详细介绍
Jun 19 Javascript
JavaScript中的方法调用详细介绍
Dec 30 Javascript
JavaScript基本类型值-Number类型
Feb 24 Javascript
基于angular实现模拟微信小程序swiper组件
Jun 11 Javascript
详解Angular6.0使用路由步骤(共7步)
Jun 29 Javascript
原生js实现3D轮播图
Mar 21 Javascript
node静态服务器实现静态读取文件或文件夹
Dec 03 Javascript
JavaScript, select标签元素左右移动功能实现
May 14 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
Aug 09 Javascript
vue绑定数字类型 value为数字的实例
Aug 31 Javascript
vue如何实现关闭对话框后刷新列表
Apr 08 Vue.js
js中如何完美的解析数据
Mar 18 #Javascript
解决使用vue.js路由后失效的问题
Mar 17 #Javascript
vue实现的上传图片到数据库并显示到页面功能示例
Mar 17 #Javascript
Vue的路由动态重定向和导航守卫实例
Mar 17 #Javascript
JS实现为动态创建的元素添加事件操作示例
Mar 17 #Javascript
对vue里函数的调用顺序介绍
Mar 17 #Javascript
基于vue2.0动态组件及render详解
Mar 17 #Javascript
You might like
简体中文转换为繁体中文的PHP函数
2006/10/09 PHP
在Debian系统下配置LNMP的教程
2015/07/09 PHP
详解WordPress中给链接添加查询字符串的方法
2015/12/18 PHP
谈谈php对接芝麻信用踩的坑
2016/12/01 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
JavaScript计划任务后台运行的方法
2015/12/18 Javascript
Bootstrap网格系统详解
2016/04/26 Javascript
AngularJs ng-repeat 嵌套如何获取外层$index
2016/09/21 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
2016/11/03 Javascript
Bootstrop实现多级下拉菜单功能
2016/11/24 Javascript
jQuery Ajax全解析
2017/02/13 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
简单谈谈JS中的正则表达式
2017/09/11 Javascript
Angular.js实现获取验证码倒计时60秒按钮的简单方法
2017/10/18 Javascript
浅谈react受控组件与非受控组件(小结)
2018/02/09 Javascript
详解处理Vue单页面应用SEO的另一种思路
2018/11/09 Javascript
详解Vue2 添加对scss的支持
2019/01/02 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
朴素贝叶斯算法的python实现方法
2014/11/18 Python
python结合opencv实现人脸检测与跟踪
2015/06/08 Python
详解Python字符串对象的实现
2015/12/24 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
2016/06/07 Python
python thrift搭建服务端和客户端测试程序
2018/01/17 Python
Python线性回归实战分析
2018/02/01 Python
python清除函数占用的内存方法
2018/06/25 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
2018/09/14 Python
使用Keras中的ImageDataGenerator进行批次读图方式
2020/06/17 Python
python 解决pycharm运行py文件只有unittest选项的问题
2020/09/01 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
哪些情况下不应该使用索引
2015/07/20 面试题
代码中finally中的代码会不会执行
2012/02/06 面试题
新闻专业本科生的自我评价分享
2013/11/20 职场文书
大二学习计划书范文
2014/04/27 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书