对于IE的attachEvent方法可能大家都比较熟,现在说说FireFox的addEventListener的用法。
addEventListener的参数一共有三个,语法为:
element.addEventListener(type,listener,useCapture)
下面是详解
- 其中element是要绑定函数的对象。
- type是事件名称,要注意的是"onclick"要改为"click","onblur"要改为"blur",也就是说事件名不要带"on"。
- listener当然就是绑定的函数了,记住不要跟括号
- 最后一个参数是个布尔值,表示该事件的响应顺序,下面重点介绍一下addEventListener的第3个参数(useCapture)。
userCapture若为true,则浏览器采用Capture,若为false则采用bubbing方式。建议用false,看个例子吧。
html代码
<div id="div_test"> <input type="button" id="btn_test" value="se4.cn技术基地" /> </div>
js代码
window.onload=function(){
document.getElementById("div_test").addEventListener("click",test1,false);
document.getElementById("btn_test").addEventListener("click",test2,false);
} function test1(){ alert("外层div触发") } function test2(){
alert("内层input触发") }
自己体验一下,如果userCapture是true则test1先触发,如果userCapture是false则test2先触发。
在近来的工作中,用到了attachEvent方法,该方法可以为某一事件附加其它的处理事件,有时候可能比较有用,这里将其基本用法总结一下。
其语法可以查看《DHTML手册》,里面有详细的说明,这里贴一个例子,该例子来自互联网:
document.getElementById("btn").onclick = method1;
document.getElementById("btn").onclick = method2;
document.getElementById("btn").onclick = method3;
如果这样写,那么将会只有medhot3被执行
写成这样:
var btn1Obj = document.getElementById("btn1");
//object.attachEvent(event,function);
btn1Obj.attachEvent("onclick",method1);
btn1Obj.attachEvent("onclick",method2);
btn1Obj.attachEvent("onclick",method3);
执行顺序为method3->method2->method1
如果是Mozilla系列,并不支持该方法,需要用到addEventListener
var btn1Obj = document.getElementById("btn1");
//element.addEventListener(type,listener,useCapture);
btn1Obj.addEventListener("click",method1,false);
btn1Obj.addEventListener("click",method2,false);
btn1Obj.addEventListener("click",method3,false);
执行顺序为method1->method2->method3
分享到:
相关推荐
在JavaScript中,`...以上就是关于 `attachEvent` 和 `addEventListener` 的使用方法及其区别的详细介绍,它们在JavaScript事件处理中起着至关重要的作用。正确理解和使用这些方法可以提高代码的健壮性和兼容性。
在JavaScript中,处理DOM事件监听有两个主要的方法:`addEventListener` 和 `attachEvent`。这两个方法在功能上相似,但存在一些关键的区别,特别是在浏览器兼容性和事件处理方式上。 `addEventListener` 是W3C标准...
在JavaScript中,`addEventListener`和`attachEvent`都是用于向元素添加事件监听器的方法,但它们之间存在一些关键差异,特别是在处理`this`关键字时。`addEventListener`是W3C标准的一部分,被大多数现代浏览器支持...
在使用 attachEvent 和 addEventListener 方法时,需要注意以下几点: 1. 在 attachEvent 中,最后一个绑定的函数会最先执行,而在 addEventListener 中,绑定的函数按照绑定顺序执行。 2. attachEvent 只能用于 IE8...
除了上述方法外,还可以考虑直接修改JavaScript代码,使用`addEventListener`方法替代`attachEvent`。这种方式的好处是不仅解决了IE11不支持`attachEvent`的问题,还让代码变得更加标准化和简洁。示例代码如下: ``...
本文将探讨在 Internet Explorer (IE) 和 Firefox (FF) 浏览器中处理事件的方法,特别关注 `attachEvent` 和 `addEventListener` 的使用。 #### 二、事件处理概述 在 JavaScript 中,事件是指由用户或浏览器引发的...
在Internet Explorer(IE)浏览器中,由于其使用了不同的事件模型,需要使用`attachEvent`方法来达到类似的效果: ```javascript var btn1Obj = document.getElementById("btn1"); btn1Obj.attachEvent("onclick", ...
可能你也碰到过这种情况,就是在js的代码中用了[removed]后...至于attachEvent和addEventListener的用法,可以自己Google或百度一下。 代码如下: if (document.all){ window.attachEvent(‘onload’,函数名)//IE中 } els
为了实现跨浏览器的事件绑定,我们需要同时使用`attachEvent`和`addEventListener`。一种常见的做法是创建一个通用的事件绑定函数,如下所示: ```javascript function addEvent(element, event, handler) { if ...
总结来说,虽然attachEvent和detachEvent方法在IE早期版本中是非常实用的事件处理工具,但它们的使用方法稍显复杂,特别是当需要处理带有参数的事件监听函数时。现代的Web开发应优先考虑使用addEventListener和...
在使用 addEventListener 或 attachEvent 时,需要注意 IE 浏览器的兼容性问题,IE 浏览器使用 attachEvent 方法,而不是 addEventListener 方法。因此,在编写跨浏览器兼容的代码时,需要使用条件语句来判断浏览器...
需要注意的是,`addEventListener`在Internet Explorer 9以下版本不被支持,此时需要使用`attachEvent()`,其语法与`addEventListener`有所不同,事件类型需要加上`on`前缀,且不接受`useCapture`参数。 此外,...
总之,解决`self.attachevent is not a function`错误的关键在于理解`attachEvent`和`addEventListener`的区别,并通过条件判断或者使用库来实现跨浏览器的兼容性。同时,对于事件处理的模式选择,应根据实际需求和...
`attachEvent`是Internet Explorer浏览器特有的事件处理方法,用于将函数绑定到DOM元素的特定事件上,例如点击、鼠标移动等。与W3C标准的`addEventListener`不同,`attachEvent`并不支持事件捕获阶段,并且它的事件...
大家都知道事件的用法就是当某个事件(状况)被触发了之后就会去执行某个Function, 尤其是Javascript, 在当红AJAX的催化下, 了解Javascript的Event用法更加重要, 在这里就大概介绍一下avascript的Event用法.
在本文中,我们将深入探讨`this`指针的用法以及IE的`attachEvent`与Firefox的`addEventListener`在事件处理上的差异。 首先,让我们来理解`this`的用法。在JavaScript中,`this`通常指向调用函数的那个对象。例如,...
### 解决使用attachEvent函数时,this指向被绑定的元素的问题的方法 在Web开发中,尤其是在处理Internet Explorer(IE)浏览器兼容性问题时,我们经常会遇到`attachEvent`函数中的`this`指向问题。默认情况下,`...