js 事件监听 兼容浏览器
js 事件监听 兼容浏览器 ie 用 attachEvent w3c(firefox/chrome) 用 addEventListener
删除事件监听 ie 用 detachEven removeEventListener
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Title</title> <script type="text/javascript"> /*问题:我们可不可以对同一对象的同一事件绑定多个处理程序? dom.onclick = function fn1() {} dom.onclick = function fn2() {} 答:可以,采用事件监听的方式*/ // ie版 /* window.onload= function () { document.getElementById("img1").attachEvent('onclick',function(){ alert(111); }); document.getElementById("img1").attachEvent('onclick',function(){ alert(222); }); }*/ // w3c版 /* window.onload= function () { document.getElementById("img1").addEventListener('click',function(){ alert(111); }); document.getElementById("img1").addEventListener('click',function(){ alert(222); }); }*/ function $(id){ return document.getElementById(id); } function fn1(){ alert(111); } function fn2(){ alert(222); } //事件兼听 兼容浏览器版 function addEvent(obj,type,callback){ if(obj.addEventListener){ obj.addEventListener(type,callback); //w3c }else{ obj.attachEvent('on'+type,callback); // ie onclick 多了一个on } } //删除事件监听 兼容浏览器版 function removeEvent(obj,type,callback){ if(obj.removeEventListener){ //obj.removeEventListener 这里没有() 【重点】 obj.removeEventListener(type,callback); //w3c }else{ obj.detachEvent('on'+type,callback); // ie onclick 多了一个on } } window.onload= function () { addEvent($("img1"),'click',fn1); addEvent($("img1"),'click',fn2); $("button1").onclick=function(){ removeEvent($("img1"),'click',fn1); } } </script> </head> <body> <img src="image/1.jpg" id="img1"/> <input type="button" id="button1"> </body> </html>

浙公网安备 33010602011771号