addEventListener()与removeEventListener()
来源:互联网 发布:套淘宝保证金最新模式 编辑:程序博客网 时间:2024/05/04 12:35
addEventListener()与removeEventListener()用于处理指定和删除事件处理程序操作。所有的DOM节点中都包含这两种方法,并且它们都接受3个参数:要处理的事件名、作为事件处理程序的函数和一个布尔值。最有这个布尔值参数是true,表示在捕获阶段调用事件处理程序;如果是false,表示在冒泡阶段调用事件处理程序。
要在按钮上为click事件添加事件处理程序,可以使用下列代码:
var btn = document.getElementById("myBtn");btn.addEventListener("click", function () { alert(this.id);}, false);
使用DOM2级方法添加事件处理程序的主要好处是可以添加多个事件处理程序。来看下面的例子:
var btn = document.getElementById("myBtn");btn.addEventListener("click", function () { alert(this.id);}, false);btn.addEventListener("click", function () { alert("Hello World");}, false);
通过addEventListener()添加的事件处理程序只能使用removeEventListener()来移除;移除时传入的参数与添加处理程序时使用的参数相同。这也意味着通过addEventListener()添加的匿名函数无法移除,如下面的例子所示:
var btn = document.getElementById("myBtn");btn.addEventListener("click", function () { alert(this.id);}, false);btn.removeEventListener("click", function () { //无效! alert(this.id);}, false);
在这个例子中,我使用addEventListener()添加一个事件处理程序。虽然调用removeEventListener(0是看似使用了相同的参数,但实际上,第二个参数与传入addEventListener()中的那一个完全不同的函数。而传入removeEventListener()中的事件处理程序函数必须与传入addEventListener()中的相同,如下面的例子所示:
var btn = document.getElementById("myBtn");var handler = function () { alert(this.id); };btn.addEventListener("click", handler, false);btn.removeEventListener("click", handler, false); //有效!
重写后的这个例子没有问题,是因为在addEventListener()和removeEventListener()中用来相同的函数。
大多数情况下,都是将事件处理程序添加到事件流的冒泡阶段,这样可以最大限度地兼容各种浏览器。最好只在需要在是时间到达目标之前截获它的时候将事件处理程序添加到捕获阶段。如果不是特别需要,我们不建议在事件捕获阶段注册事件处理程序。
- addEventListener()与removeEventListener()
- addEventListener()与removeEventListener()
- addEventListener()与removeEventListener()
- addEventListener()与removeEventListener()
- addEventListener()与removeEventListener()
- addEventListener()与removeEventListener()
- addEventListener()与removeEventListener()
- addEventListener()与removeEventListener()
- addEventListener()与removeEventListener()
- JavaScript 的 addEventListener 与 removeEventListener
- addEventListener()与removeEventListener() 用法详解
- attachEvent/detachEvent 与 addEventListener/removeEventListener区别
- js事件处理:addEventListener()与removeEventListener()
- attachEvent、addEventListener、detachEvent、removeEventListener
- attachEvent、addEventListener、detachEvent、removeEventListener
- addEventListener()、removeEventListener()实现机制
- attachEvent、addEventListener、detachEvent、removeEventListener
- HTML之addEventListener、removeEventListener
- Git常用操作命令及举例说明
- KMP算法(学习记录)
- php魔术常量
- 浏览器兼容
- 什么是对象,为什么要面向对象,怎么才能面向对象?
- addEventListener()与removeEventListener()
- 李彦宏内部信:迎接四个新时代,打好每一场战争
- Android 内容访问者 和 跳转到通讯录页面获取信息
- android有序广播的实现
- Android Studio一直处于Building的解决方法
- 两类背包问题
- DecimalFormat对数值格式化的舍入问题——RoundingMode
- 数据库事务、并发、锁那些事
- Mybatis中实现oracle的批量插入、更新