js事件監聽器用法執行個體詳解

來源:互聯網
上載者:User

標籤:get   bind   作用   函數   移除   tar   javascrip   取消   head   

IE下,event對象有srcElement屬性,但是沒有target屬性;

Firefox下,event對象有target屬性,但是沒有srcElement屬性.但他們的作用是相當的,即:

firefox 下的 event.target = IE 下的 event.srcElement

解決方案:使用obj = event.srcElement ? event.srcElement : event.target;

或:var evtTarget = event.target || event.srcElement;

?
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 <!DOCTYPE html> <html>  <head>   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   <title>Event</title>   <script type="text/javascript">    function addEventHandler(target,type,func){     if(target.addEventListener){      //監聽IE9,Google和Firefox      target.addEventListener(type, func, false);     }else if(target.attachEvent){      target.attachEvent("on" + type, func);     }else{      target["on" + type] = func;     }    }    function removeEventHandler(target, type, func) {     if (target.removeEventListener){      //監聽IE9,Google和Firefox      target.removeEventListener(type, func, false);     } else if (target.detachEvent){      target.detachEvent("on" + type, func);     }else {      delete target["on" + type];     }    }    var eventOne = function(){     alert("第一個監聽事件");    }    function eventTwo(){     alert("第二個監聽事件");    }    window.onload = function(){     var bindEventBtn = document.getElementById("bindEvent");     //監聽eventOne事件     addEventHandler(bindEventBtn,"click",eventOne);     //監聽eventTwo事件     addEventHandler(bindEventBtn,"click",eventTwo );     //監聽本身的事件     addEventHandler(bindEventBtn,"click",function(){      alert("第三個監聽事件");     });     //取消第一個監聽事件     removeEventHandler(bindEventBtn,"click",eventOne);     //取消第二個監聽事件     removeEventHandler(bindEventBtn,"click",eventTwo);    }   </script>  </head>  <body>   <input type="button" value="測試" id="bindEvent">   <input type="button" value="測試2" id="yuanEvent">  </body> </html

js事件監聽器用法執行個體詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.