时间:2021-07-01 10:21:17 帮助过:3人阅读
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.有内存泄漏的问题
相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
推荐阅读:
nodejs+express做出文件上传
怎样操作angularjs缓存
以上就是怎样在项目中使用js绑定DOM事件的详细内容,更多请关注Gxl网其它相关文章!