要给某个按钮添加多个事件,如果使用下面的方式,则只有test3会执行:
//
只执行test3
document.getElementById("btn").onclick = test1;
document.getElementById("btn").onclick = test2;
document.getElementById("btn").onclick = test3;
这时就需要用到attachEvent或addEventListener,这两个方法用来为某一事件附加其它的处理事件:
attachEvent 不支持Mozilla系列 用法: object.attachEvent(event,function)
addEventListener 用于 Mozilla系列 用法: object.addEventListener(type,listener,useCapture)
如下:
var btnTest = document.getElementById("btn");
//
IE6\7\8 下测试结果:test3-->test2-->test1
//
IE9 下测试结果:test1-->test2-->test3
btnTest.attachEvent("onclick", test1);
btnTest.attachEvent("onclick", test2);
btnTest.attachEvent("onclick", test3);
//
IE9 下测试结果:test1-->test2-->test3
//
Chrome 下测试结果:test1-->test2-->test3
//
FF 下测试结果:test1-->test2-->test3
btnTest.addEventListener("click", test1,
false);
btnTest.addEventListener("click", test2,
false);
btnTest.addEventListener("click", test3,
false);
完整的:
if(window.attachEvent)
{
btnTest.attachEvent("onclick", test1);
}
else
if (window.addEventListener)
{
btnTest.addEventListener("click", test1,
false);
}