`

javascript attachEvent和addEventListener 使用方法

阅读更多
http://www.diybl.com/course/1_web/javascript/jsjs/20071226/94592.html
attachEvent方法,为某一事件附加其它的处理事件。(不支持Mozilla系列,如果是Mozilla系列,并不支持该方法,需要用到addEventListener)


attachEvent 方法 用于 IE系列
举例:
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

W3C DOM裡用来新增触发事件的函数叫AddEventListener,不过我一直不知道这个函数的第三个参数是要做什麼用的,总是随便设,也没发现差异再哪,前两天看ppk on javascript终於看到说明了,至於很久以前就有的DOM的标準文件,我其实根本没去找过这个参数的资讯。

这个参数叫做useCapture,是一个boolean值,就是true or false,如果送出true的话就是瀏览器会使用Capture方式,false的话是Bubbling,只有在特定状况下才会有影响,通常建议是false,而会有影响的情形是目标元素(target element)有祖先元素(ancestor element),而且也有同样的事件对应函数,我想,看图会比较清楚。


像这张图所显示的,我的范例有两层div元素,而且都设定有click事件,一般来说,如果我在内层蓝色的元素上click不只会触发蓝色元素的click事件,还会同时触发红色元素的click事件,而useCapture这个参数就是在控制这时候两个click事件的先后顺序。如果是false,那就会使用bubbling,他是从内而外的流程,所以会先执行蓝色元素的click事件再执行红色元素的click事件,如果是true,那就是capture,和bubbling相反是由外而内,会先执行红色元素的click事件才执行蓝色元素的click事件。附上两个范例,capture和bubbling,两个档案只有差在此一参数不同,可以发现事件的发生顺序不一样了。

那如果不同层的元素使用的useCapture不同呢?就是会先从最外层元素往目标元素寻找设定为capture的事件,到达目标元素执行目标元素的事件后,再寻原路往外寻找设定为bubbling的事件。
  • 大小: 2.5 KB
分享到:
评论

相关推荐

    javascript attachEvent和addEventListener使用方法

    本知识点将介绍 JavaScript 中两种常用的方法:attachEvent 和 addEventListener,以及它们在不同浏览器中的应用和区别。 首先,attachEvent 方法是早期 Internet Explorer 浏览器引入的事件监听方法,它的语法是:...

    attachEvent和addEventListener 使用方法

    在JavaScript中,`attachEvent` 和 `addEventListener` 是两种用于为元素添加事件处理程序的方法,主要在Internet Explorer和非IE浏览器(遵循W3C标准)中使用。它们都是用来监听和响应用户或浏览器的特定行为,如...

    IE11没有window.attachEvent方法处理方法

    除了上述方法外,还可以考虑直接修改JavaScript代码,使用`addEventListener`方法替代`attachEvent`。这种方式的好处是不仅解决了IE11不支持`attachEvent`的问题,还让代码变得更加标准化和简洁。示例代码如下: ``...

    JS在IE和FF下attachEvent,addEventListener学习笔记

    本文将探讨在 Internet Explorer (IE) 和 Firefox (FF) 浏览器中处理事件的方法,特别关注 `attachEvent` 和 `addEventListener` 的使用。 #### 二、事件处理概述 在 JavaScript 中,事件是指由用户或浏览器引发的...

    addEventListener和attachEvent二者绑定的执行函数中的this不相同

    在JavaScript中,`addEventListener`和`attachEvent`都是用于向元素添加事件监听器的方法,但它们之间存在一些关键差异,特别是在处理`this`关键字时。`addEventListener`是W3C标准的一部分,被大多数现代浏览器支持...

    JavaScript通过attachEvent和detachEvent方法处理带参数的函数

    在探讨JavaScript中使用attachEvent和detachEvent方法处理带有参数的函数之前,我们先要了解这两个方法分别是什么以及它们的作用。attachEvent和detachEvent是早期IE浏览器特有的,用于为DOM元素添加或移除事件监听...

    Javascript 的addEventListener()及attachEvent()区别分析

    Mozilla中: addEventListener的使用方式: target.addEventListener(type, listener, useCapture); target: 文档节点、document、window 或 XMLHttpRequest。 type: 字符串,事件名称,不含“on”,比如“click”...

    浅谈addEventListener和attachEvent的区别

    在JavaScript中,处理DOM事件监听有两个主要的方法:`addEventListener` 和 `attachEvent`。这两个方法在功能上相似,但存在一些关键的区别,特别是在浏览器兼容性和事件处理方式上。 `addEventListener` 是W3C标准...

    Javascript attachEvent传递参数的办法

    在探讨Javascript中使用attachEvent方法传递参数的问题时...这种方法在IE浏览器兼容性方面尤为重要,虽然现代浏览器已经大多支持addEventListener,但了解attachEvent的使用和技巧仍然对维护老式IE代码有着一定的帮助。

    javascript兼容性解决方法大全

    通用的方法是使用`getAttribute`和`setAttribute`方法,如`div1.getAttribute("value")`和`div1.setAttribute("value", val)`。 综上所述,解决JavaScript的浏览器兼容性问题通常需要对各个浏览器的特性有深入理解...

    JavaScript事件机制详细研究

    在使用 addEventListener 或 attachEvent 时,需要注意 IE 浏览器的兼容性问题,IE 浏览器使用 attachEvent 方法,而不是 addEventListener 方法。因此,在编写跨浏览器兼容的代码时,需要使用条件语句来判断浏览器...

    javascript attachEvent绑定多个事件执行顺序问题

    jQuery内部在使用`addEventListener`或`attachEvent`之前,会先检查是否已经存在相同类型的处理函数(handlers),如果存在则不会重复绑定,而是会将新的处理函数合并到现有的handlers中。这样,无论是在IE还是其他...

    javascript中attachEvent用法实例分析

    为了实现跨浏览器的事件绑定,我们需要同时使用`attachEvent`和`addEventListener`。一种常见的做法是创建一个通用的事件绑定函数,如下所示: ```javascript function addEvent(element, event, handler) { if ...

    addEventListener 的用法示例介绍

    `addEventListener` 是JavaScript中用于添加事件监听器的方法,它允许我们为同一个元素绑定多个事件处理函数,这对于构建复杂的交互式网页非常有用。在不同的浏览器环境中,`addEventListener` 的使用略有差异,尤其...

    JavaScript使用

    同时,事件处理也是JavaScript的一大特点,通过`addEventListener`或`attachEvent`可以为元素绑定事件监听器,响应用户的交互行为。 JavaScript还有强大的库和框架,比如jQuery简化了DOM操作,React.js和Vue.js用于...

    javascript 操作 dom 的常用方法

    13. `addEventListener` 和 `removeEventListener` 方法:在DOM2级事件中,这两个方法用于添加和移除事件监听器,支持多个事件处理程序,与IE中的`attachEvent`和`detachEvent`相类似,但更现代且跨浏览器。...

    javascript动态添加事件.pdf

    2. **attachEvent和addEventListener**: - **attachEvent** 是IE浏览器特有的,用于添加事件监听器。它的语法是 `element.attachEvent("on" + event, function)`,例如 `obj.attachEvent("onclick", Foo)`。 - **...

    javascript笔记 超级详细 入门

    - 对于支持DOM Level 2的浏览器,使用`addEventListener`方法。 ```javascript div.addEventListener("click", add, true); ``` - **常见事件类型**: - 鼠标事件:如`click`、`dblclick`、`mouseover`、`mouse...

Global site tag (gtag.js) - Google Analytics