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 相关文章推荐
优秀js开源框架-jQuery使用手册(1)
Mar 10 Javascript
js取得html iframe中的元素和变量值
Jun 30 Javascript
jQuery实现弹出窗口中切换登录与注册表单
Jun 05 Javascript
JS实现网页上随滚动条滚动的层效果代码
Nov 04 Javascript
DeviceOne 让你一见钟情的App快速开发平台
Feb 17 Javascript
AngularJS 表单验证手机号的实例(非必填)
Nov 12 Javascript
javaScript手机号码校验工具类PhoneUtils详解
Dec 08 Javascript
Vue+axios实现统一接口管理的方法
Jul 23 Javascript
layer.open关闭父窗口 以及调用父页面的方法
Aug 17 Javascript
vue中的watch监听数据变化及watch中各属性的详解
Sep 11 Javascript
webpack+vue-cli项目中引入外部非模块格式js的方法
Sep 28 Javascript
JS数据类型分类及常用判断方法
Nov 19 Javascript
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
CI框架安全类Security.php源码分析
2014/11/04 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
jQuery在页面加载时动态修改图片尺寸的方法
2015/03/20 Javascript
JavaScript组件开发完整示例
2015/12/15 Javascript
js运动应用实例解析
2015/12/28 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
AngularJS实现按钮提示与点击变色效果
2016/09/07 Javascript
走进javascript——不起眼的基础,值和分号
2017/02/24 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
2017/10/19 Javascript
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
微信小程序scroll-view实现滚动穿透和阻止滚动的方法
2018/08/20 Javascript
如何通过setTimeout理解JS运行机制详解
2019/03/23 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
[08:53]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS 选手采访
2021/03/11 DOTA
python如何生成各种随机分布图
2018/08/27 Python
Python迭代器模块itertools使用原理解析
2019/12/11 Python
python lambda函数及三个常用的高阶函数
2020/02/05 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
Python tkinter界面实现历史天气查询的示例代码
2020/08/23 Python
pytorch中index_select()的用法详解
2021/01/06 Python
Fossil美国官网:Fossil手表、手袋、珠宝及配件
2017/02/01 全球购物
大专自我鉴定范文
2013/10/01 职场文书
2014年公务员思想汇报范文:全心全意为人民服务
2014/03/06 职场文书
老公爱的承诺书
2014/03/31 职场文书
租车协议书范本
2014/04/22 职场文书
违反交通法规检讨书
2014/09/10 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
《日月潭》教学反思
2016/02/20 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书