写成这样: 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
使用实例:
1。 var el = EDITFORM_DOCUMENT.body; //先取得对象,EDITFORM_DOCUMENT实为一个iframe if (el.addEventListener){ el.addEventListener('click', KindDisableMenu, false); } else if (el.attachEvent){ el.attachEvent('onclick', KindDisableMenu); }
2。
if (window.addEventListener) { window.addEventListener('load', _uCO, false); } else if (window.attachEvent) {
true 和 false 是参数 useCapture.
看下英文文档对useCapture的解释
Specify "true" to invoke the event listener during the capturing phase of event propagation. Specify "false" to invoke the event listener when the node is the event target or when the event bubbles up to the current node.
是在事件触发的时机上有不同,"true"的意思是在 事件传播的时候 触发该事件,比如你在button外加一个<div>,该<div>上有一个事件,那么这样就形成了button的事件先触发,而<div>的事件后触发, "true"的时候就是等button的事件结束以后,再触发div的事件。 而false的时候,是同时触发,因为只要我选中了当前控件,那么就执行,而不考虑事件的传播