亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

js事件監聽器用法實例詳解

2024-05-06 16:21:07
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了js事件監聽器用法,以實例形式較為詳細的分析了javascript事件監聽器使用注意事項與相關技巧,需要的朋友可以參考下

本文實例講述了js事件監聽器用法。分享給大家供大家參考。具體分析如下:

1、當同一個對象使用.onclick的寫法觸發多個方法的時候,后一個方法會把前一個方法覆蓋掉,也就是說,在對象的onclick事件發生時,只會執行最后綁定的方法。而用事件監聽則不會有覆蓋的現象,每個綁定的事件都會被執行。如下:

 

 
  1. window.onload = function(){  
  2. var btn = document.getElementById("yuanEvent");  
  3. btn.onclick = function(){  
  4. alert("第一個事件");  
  5. }  
  6. btn.onclick = function(){  
  7. alert("第二個事件");  
  8. }  
  9. btn.onclick = function(){  
  10. alert("第三個事件");  
  11. }  

最后只輸出:第三個事件,因為后一個方法都把前一個方法覆蓋掉了。

原生態的事件綁定函數addEventListener:

 

 
  1. var eventOne = function(){  
  2. alert("第一個監聽事件");  
  3. }  
  4. function eventTwo(){  
  5. alert("第二個監聽事件");  
  6. }  
  7. window.onload = function(){  
  8. var btn = document.getElementById("yuanEvent");  
  9. //addEventListener:綁定函數  
  10. btn.addEventListener("click",eventOne);  
  11. btn.addEventListener("click",eventTwo);  

輸出:第一個監聽事件 和 第二個監聽事件

2、采用事件監聽給對象綁定方法后,可以解除相應的綁定,寫法如下:

 

 
  1. var eventOne = function(){  
  2. alert("第一個監聽事件");  
  3. }  
  4. function eventTwo(){  
  5. alert("第二個監聽事件");  
  6. }  
  7. window.onload = function(){  
  8. var btn = document.getElementById("yuanEvent");  
  9. btn.addEventListener("click",eventOne);  
  10. btn.addEventListener("click",eventTwo);  
  11. btn.removeEventListener("click",eventOne);  

輸出:第二個監聽事件

3、解除綁定事件的時候一定要用函數的句柄,把整個函數寫上是無法解除綁定的。

錯誤寫法:

 

 
  1. btn.addEventListener("click",function(){  
  2. alert(11);  
  3. });  
  4. btn.removeEventListener("click",function(){  
  5. alert(11);  
  6. }); 

正確寫法:

 

 
  1. btn.addEventListener("click",eventTwo);  
  2. btn.removeEventListener("click",eventOne);  

總結:對函數進行封裝后的監聽事件如下,兼容各大主流瀏覽器。

 

 
  1. /*  
  2. * addEventListener:監聽Dom元素的事件  
  3.  
  4. * target:監聽對象  
  5. * type:監聽函數類型,如click,mouseover  
  6. * func:監聽函數  
  7. */ 
  8. function addEventHandler(target,type,func){  
  9. if(target.addEventListener){  
  10. //監聽IE9,谷歌和火狐  
  11. target.addEventListener(type, func, false);  
  12. }else if(target.attachEvent){  
  13. target.attachEvent("on" + type, func);  
  14. }else{  
  15. target["on" + type] = func;  
  16. }  
  17. }  
  18. /*  
  19. * removeEventHandler:移除Dom元素的事件  
  20.  
  21. * target:監聽對象  
  22. * type:監聽函數類型,如click,mouseover  
  23. * func:監聽函數  
  24. */ 
  25. function removeEventHandler(target, type, func) {  
  26. if (target.removeEventListener){  
  27. //監聽IE9,谷歌和火狐  
  28. target.removeEventListener(type, func, false);  
  29. else if (target.detachEvent){  
  30. target.detachEvent("on" + type, func);  
  31. }else {  
  32. delete target["on" + type];  
  33. }  
  34. }  
  35. var eventOne = function(){  
  36. alert("第一個監聽事件");  
  37. }  
  38. function eventTwo(){  
  39. alert("第二個監聽事件");  
  40. }  
  41. window.onload = function(){  
  42. var bindEventBtn = document.getElementById("bindEvent");  
  43. //監聽eventOne事件  
  44. addEventHandler(bindEventBtn,"click",eventOne);  
  45. //監聽eventTwo事件  
  46. addEventHandler(bindEventBtn,"click",eventTwo );  
  47. //監聽本身的事件  
  48. addEventHandler(bindEventBtn,"click",function(){  
  49. alert("第三個監聽事件");  
  50. });  
  51. //取消第一個監聽事件  
  52. removeEventHandler(bindEventBtn,"click",eventOne);  
  53. //取消第二個監聽事件  
  54. removeEventHandler(bindEventBtn,"click",eventTwo);  
  55. }  

實例:

 

 
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  5. <title>Event</title>  
  6. <script type="text/javascript">  
  7. function addEventHandler(target,type,func){  
  8. if(target.addEventListener){  
  9. //監聽IE9,谷歌和火狐  
  10. target.addEventListener(type, func, false);  
  11. }else if(target.attachEvent){  
  12. target.attachEvent("on" + type, func);  
  13. }else{  
  14. target["on" + type] = func;  
  15. }  
  16. }  
  17. function removeEventHandler(target, type, func) {  
  18. if (target.removeEventListener){  
  19. //監聽IE9,谷歌和火狐  
  20. target.removeEventListener(type, func, false);  
  21. else if (target.detachEvent){  
  22. target.detachEvent("on" + type, func);  
  23. }else {  
  24. delete target["on" + type];  
  25. }  
  26. }  
  27. var eventOne = function(){  
  28. alert("第一個監聽事件");  
  29. }  
  30. function eventTwo(){  
  31. alert("第二個監聽事件");  
  32. }  
  33. window.onload = function(){  
  34. var bindEventBtn = document.getElementById("bindEvent");  
  35. //監聽eventOne事件  
  36. addEventHandler(bindEventBtn,"click",eventOne);  
  37. //監聽eventTwo事件  
  38. addEventHandler(bindEventBtn,"click",eventTwo );  
  39. //監聽本身的事件  
  40. addEventHandler(bindEventBtn,"click",function(){  
  41. alert("第三個監聽事件");  
  42. });  
  43. //取消第一個監聽事件  
  44. removeEventHandler(bindEventBtn,"click",eventOne);  
  45. //取消第二個監聽事件  
  46. removeEventHandler(bindEventBtn,"click",eventTwo);  
  47. }  
  48. </script>  
  49. </head>  
  50. <body>  
  51. <input type="button" value="測試" id="bindEvent">  
  52. <input type="button" value="測試2" id="yuanEvent">  
  53. </body>  
  54. </html> 

希望本文所述對大家的javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲男人的天堂网站| 久久久成人的性感天堂| 日韩视频精品在线| 欧美在线免费观看| 精品久久久91| 日日摸夜夜添一区| 国产精品黄色影片导航在线观看| 国色天香2019中文字幕在线观看| 91欧美视频网站| 蜜臀久久99精品久久久久久宅男| 亚洲欧美日韩高清| 欧美激情综合色| 97人人做人人爱| 国产视频精品一区二区三区| 欧洲s码亚洲m码精品一区| 中文字幕日韩精品在线| 性视频1819p久久| 国产日韩欧美中文在线播放| 精品露脸国产偷人在视频| 欧美xxxx18性欧美| 亚洲电影免费观看高清完整版在线观看| 激情成人在线视频| 97在线精品国自产拍中文| 欧美日韩亚洲激情| 久久深夜福利免费观看| 国产美女扒开尿口久久久| 亚洲国产成人精品一区二区| 97视频免费观看| 欧美中文字幕在线播放| 成人在线精品视频| 91久久久久久国产精品| 精品中文字幕视频| 欧美大肥婆大肥bbbbb| 亚洲视频欧美视频| 一区二区三区久久精品| 成人国产在线视频| 亚洲精品美女久久久久| 欧美最猛性xxxxx免费| 欧洲成人免费aa| 美女性感视频久久久| 97在线视频免费| 日韩毛片在线观看| 久热在线中文字幕色999舞| 97精品一区二区视频在线观看| 日韩精品丝袜在线| 成人春色激情网| 国产精品露脸自拍| 欧美电影院免费观看| 精品福利在线视频| 亚洲美女激情视频| 国产suv精品一区二区| 亚洲国产欧美在线成人app| 性欧美在线看片a免费观看| 成人福利在线观看| 亚洲成色777777在线观看影院| 91高清视频免费观看| 福利视频第一区| 国产精品igao视频| xx视频.9999.com| 成人黄色在线免费| 欧美日韩国产精品一区二区不卡中文| 日韩av在线最新| 亚洲精品久久久久中文字幕二区| 有码中文亚洲精品| 亚洲精品videossex少妇| 啪一啪鲁一鲁2019在线视频| 国产日韩欧美在线| 一区二区三区视频免费| 日韩激情第一页| 91精品中国老女人| 亚洲小视频在线观看| 97精品视频在线| 亚洲男人的天堂在线| **欧美日韩vr在线| 疯狂蹂躏欧美一区二区精品| 欧美大片网站在线观看| 国产裸体写真av一区二区| 国产精品一区二区三区久久久| 国精产品一区一区三区有限在线| 91精品国产乱码久久久久久久久| 国产这里只有精品| 国产精品美乳一区二区免费| 精品激情国产视频| 国产精品久久不能| 亚洲成人999| 亚洲视频一区二区三区| 国内精品久久影院| www.日韩系列| 91国产一区在线| 高清日韩电视剧大全免费播放在线观看| 国产成人+综合亚洲+天堂| 97超碰国产精品女人人人爽| 欧美大人香蕉在线| 成人在线免费观看视视频| 亚洲剧情一区二区| 国产一区红桃视频| 国产成人精品优优av| 欧美久久精品午夜青青大伊人| 亚洲乱码一区二区| 久久在精品线影院精品国产| 国产精品网红福利| 国产在线高清精品| 国产精品扒开腿做| 欧美一区深夜视频| 国产有码在线一区二区视频| 日韩精品极品在线观看播放免费视频| 欧美激情视频一区| 国产欧美日韩中文字幕在线| 日韩精品视频在线免费观看| 欧美丰满少妇xxxxx| 亚洲午夜性刺激影院| 久久久国产在线视频| 成人av电影天堂| 精品亚洲一区二区| 一区二区三欧美| 成人网页在线免费观看| 在线精品播放av| 日韩有码在线观看| 日韩经典第一页| 亚洲毛茸茸少妇高潮呻吟| 亚洲第一区中文字幕| 国产精品爽爽爽| 欧美视频精品一区| 亚洲第一网站免费视频| 色噜噜狠狠狠综合曰曰曰| 亚洲午夜精品久久久久久久久久久久| 69av在线视频| 国内伊人久久久久久网站视频| 日韩极品精品视频免费观看| 色婷婷综合成人av| 欧美性受xxxx白人性爽| 日韩高清有码在线| 国产一区深夜福利| 在线观看国产成人av片| 国产亚洲欧美日韩一区二区| 亚洲自拍欧美另类| 国产精品日日做人人爱| 亚洲第一区第二区| 国产精品久久久久秋霞鲁丝| 九九久久久久久久久激情| 精品视频9999| 日韩在线视频导航| 在线播放日韩精品| 欧美黑人一级爽快片淫片高清| 亚洲精品v欧美精品v日韩精品| 中文字幕av一区| 亚洲欧洲国产伦综合| 亚洲性生活视频在线观看| 欧美成人sm免费视频| 欧美激情国产日韩精品一区18| 亚洲香蕉av在线一区二区三区| 宅男66日本亚洲欧美视频| 最好看的2019的中文字幕视频| 日韩精品中文字幕在线播放| 精品久久在线播放| 亚洲国产精品大全| 日韩av电影在线网| 亚洲天堂影视av| 国产欧美亚洲视频| 96pao国产成视频永久免费| 国产成人精品国内自产拍免费看| 青青草一区二区| 日韩在线视频观看正片免费网站| 日韩成人激情影院|