`

用attachEvent()/addEventListener()方法添加触发事件

阅读更多

用attachEvent()/addEventListener()方法添加触发事件

在近来的工作中,用到了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


以上为转载,以下为我研究的具体实例

var el = EDITFORM_DOCUMENT.body;
//先取得对象,EDITFORM_DOCUMENT实为一个iframe
if (el.addEventListener){
    el.addEventListener('click', KindDisableMenu, false);
} else if (el.attachEvent){
    el.attachEvent('onclick', KindDisableMenu);
}


//用两种方法判断,以兼容各种浏览器。

以上为转载


 

分享到:
评论

相关推荐

    事件高级用法及兼容写法

    一、事件基础 1.事件函数 obj.on-事件名=fn 定义事件的时候,事件函数不会自动执行,当事件触发的...将事件添加到父元素上,当事件发生时,父元素会找到对应触发事件的子元素去处理,后期添加的子元素,依然有这个事件

    javascript在事件监听方面的兼容性小结

    1,IE使用attachEvent/detachEvent方法来添加和删除事件监听器;w3c使用addEventListener/removeEventListener方法。 2,IE对其事件使用onevent的命名方式,而w3c的是event的命名方式。 3,IE事件监听器内使用的是一...

    Javascript处理DOM元素事件实现代码

    但是浏览器有addEventListener和attachEvent方法可供调用,从而模拟出类似于C#中的事件委托的事件触发机制! 代码如下: /* * 功能:事件处理 * Author:LQB * 时间:2009-1-4 * #include JCore.js */ var JEvents = ...

    原生js事件的添加和删除的封装

    在IE浏览器中添加或删除事件用attachEvent、detachEvent。在其他标准浏览器中则用addEventListener、removeEventListener。下面的对事件的添加和删除做了封装。直接看代码吧! /** * @description 事件绑定,兼容...

    javascript中传统事件与现代事件

    例如:内存泄漏,重复添加事件并触发的时候是倒叙执行等。 下面是用传统事件的方法来处理封装事件的绑定: addEvent.ID = 1; // 事件计数器 function addEvent(obj, type, fn){ if(obj.addEventListener){ obj....

    ie与firefox下的event使用说明与详细区别

    另外ie中使用srcElement去获得事件触发源,ff下使用target。因此使用这两个对象时需要做相关的浏览器兼容。 点击 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]综合上节attachEvent与addEventListener。 ...

    JS定义回车事件(实现代码)

    代码如下:$(function () { //定义回车事件 if (document.addEventListener) {//如果是Firefox document.addEventListener(“keypress”, fireFoxHandler, true); } else { document.attachEvent(“onkeypress...

    ie与ff下的event事件

    更多的文章可以参考 //www.jb51.net/tag/event/1.htm另外ie中使用srcElement去获得事件触发源,ff下使用target。因此使用这两个对象时需要做相关的浏览器兼容。 srcElement –//www.jb51.net/ 点击 [Ctrl+...

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

    大家都知道事件的用法就是当某个事件(状况)被触发了之后就会去执行某个Function, 尤其是Javascript, 在当红AJAX的催化下, 了解Javascript的Event用法更加重要, 在这里就大概介绍一下avascript的Event用法.

    更优雅的事件触发兼容

    代码如下: var addEvent = function(e, what, how) { if (e.addEventListener) e.addEventListener(what, how, false) else if (e.attachEvent) e.attachEvent(‘on’ + what, how) } 这里考虑了给元素绑定事件时...

    js移除事件 js绑定事件实例应用

    代码如下: /** * @description 事件绑定,兼容各浏览器 * @param target 事件触发对象 * @param type 事件 * @param func 事件处理函数 */ function addEvents(target, type, func) { if (target.addEventListener) ...

    IBM WebSphere Portal门户开发笔记01

    46、JS ATTACHEVENT与ADDEVENTLISTENER区别 321 47、JS WINDOW.EVENT.CANCELBUBBLE 事件冒泡 323 48、JS解决COOKIE跨域访问的问题之方法一 323 49、JS禁止复制网页代码 324 50、JS 禁止剪切、复制、粘贴的文本框代码...

    Web程序员必备的7个JavaScript函数

    数年前,只要我们编写JavaScript,都必须用到几个常用的函数,比如,addEventListener 和 ...如果你在使用scroll, resize, key*等事件触发执行任务时不使用降频函数,也行你就犯了重大的错误。下面这个降频函数 d

Global site tag (gtag.js) - Google Analytics