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

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 12:22:53
字體:
來源:轉載
供稿:網友

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

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

window.onload = function(){  var btn = document.getElementById("yuanEvent");  btn.onclick = function(){   alert("第一個事件");  }  btn.onclick = function(){   alert("第二個事件");  }  btn.onclick = function(){   alert("第三個事件");  } }

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

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

var eventOne = function(){  alert("第一個監聽事件"); } function eventTwo(){  alert("第二個監聽事件"); } window.onload = function(){  var btn = document.getElementById("yuanEvent");  //addEventListener:綁定函數  btn.addEventListener("click",eventOne);  btn.addEventListener("click",eventTwo); }

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

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

var eventOne = function(){  alert("第一個監聽事件"); } function eventTwo(){  alert("第二個監聽事件"); } window.onload = function(){  var btn = document.getElementById("yuanEvent");  btn.addEventListener("click",eventOne);  btn.addEventListener("click",eventTwo);  btn.removeEventListener("click",eventOne); }

輸出:第二個監聽事件

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

錯誤寫法:

btn.addEventListener("click",function(){  alert(11); }); btn.removeEventListener("click",function(){  alert(11); });

正確寫法:

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

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

/*  * addEventListener:監聽Dom元素的事件  *  * target:監聽對象  * type:監聽函數類型,如click,mouseover  * func:監聽函數  */ function addEventHandler(target,type,func){  if(target.addEventListener){   //監聽IE9,谷歌和火狐   target.addEventListener(type, func, false);  }else if(target.attachEvent){   target.attachEvent("on" + type, func);  }else{   target["on" + type] = func;  } } /*  * removeEventHandler:移除Dom元素的事件  *  * target:監聽對象  * type:監聽函數類型,如click,mouseover  * func:監聽函數  */ function removeEventHandler(target, type, func) {  if (target.removeEventListener){   //監聽IE9,谷歌和火狐   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); } 

實例:

<!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,谷歌和火狐      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,谷歌和火狐      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>

PS:這里再為大家提供一個關于JS事件的在線工具,歸納總結了JS常用的事件類型與相關函數功能:

javascript事件與功能說明大全:

http://tools.VeVB.COm/table/javascript_event

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产综合福利在线| 91高潮精品免费porn| 亚洲福利视频免费观看| 高潮白浆女日韩av免费看| 欧美壮男野外gaytube| 久久久久久久久中文字幕| 992tv在线成人免费观看| 成人激情春色网| 国产精品成人免费视频| 久久男人的天堂| 亚洲级视频在线观看免费1级| 亚洲欧美日韩中文在线| 欧美在线国产精品| 成人黄色午夜影院| 国产午夜精品全部视频在线播放| 日韩高清电影好看的电视剧电影| 国产一区二区三区日韩欧美| 欧美激情久久久久久| 日韩亚洲欧美成人| 午夜精品一区二区三区视频免费看| 亚洲一区亚洲二区亚洲三区| 国产精品一二区| 91禁外国网站| 亚洲国产精品字幕| 欧美在线视频观看免费网站| 热久久这里只有精品| 欧美丰满少妇xxxxx做受| 91精品国产综合久久香蕉最新版| 日韩成人av在线播放| 国产福利成人在线| 91欧美精品成人综合在线观看| 成人av资源在线播放| 影音先锋欧美精品| 亚洲乱码国产乱码精品精天堂| 欧美一级高清免费| 国产精品无码专区在线观看| 国产日韩欧美中文| 亚洲韩国欧洲国产日产av| 久久久噜噜噜久噜久久| 亚洲第一网站男人都懂| 欧美日韩国产页| 国产精品久久国产精品99gif| 欧美极度另类性三渗透| 精品色蜜蜜精品视频在线观看| 国产玖玖精品视频| 欧美大荫蒂xxx| 欧美成人激情视频| 久久久国产视频| 亚洲成人教育av| 久久精品视频在线播放| 日本道色综合久久影院| 不卡av电影院| 中文一区二区视频| 中文字幕日韩欧美在线| 日韩美女中文字幕| 亚洲精品福利在线观看| 在线亚洲午夜片av大片| 久久99视频精品| 青青精品视频播放| 欧美精品videosex牲欧美| 亚洲美女av在线| 亚洲电影免费观看高清完整版在线观看| 日韩资源在线观看| 国产精品成人久久久久| 欧美精品一区二区免费| 亚洲色图狂野欧美| 超碰精品一区二区三区乱码| 色无极亚洲影院| 九九久久久久久久久激情| 久久精品美女视频网站| 亚洲成人av片| 色偷偷88888欧美精品久久久| 亚洲人成网站在线播| 国产丝袜精品第一页| 国产精品一区二区3区| 欧美日韩国产一区在线| 欧美理论电影在线播放| 亚洲老板91色精品久久| 日本精品久久电影| 国产精品久久久久久久久久东京| 欧美在线视频免费| 国产精品吴梦梦| www.日韩欧美| 91久久久久久久久久久久久| 韩国视频理论视频久久| 久久成人国产精品| 欧美亚洲日本黄色| 亚洲精品一区二区三区婷婷月| 国产精品aaa| 亚洲精品综合久久中文字幕| 懂色av影视一区二区三区| 久久国产视频网站| 久久国产精品亚洲| 欧美一区二区影院| 亚洲精品少妇网址| 成人黄色在线播放| 91精品国产自产在线观看永久| 久久亚洲精品中文字幕冲田杏梨| 亚洲国产精品久久精品怡红院| 在线视频一区二区| 久久久亚洲影院| 欧美大肥婆大肥bbbbb| 国产欧洲精品视频| 国产精品美女在线观看| 中文字幕久久亚洲| 久久久精品影院| 久久精品一区中文字幕| 97精品国产aⅴ7777| 亚洲女人天堂av| 色一区av在线| 成人精品一区二区三区电影免费| 亚洲风情亚aⅴ在线发布| 欧美国产精品va在线观看| 亚洲综合大片69999| 97在线视频免费观看| 欧美片一区二区三区| 日本一欧美一欧美一亚洲视频| 久久99青青精品免费观看| 亚洲理论在线a中文字幕| 性欧美激情精品| 久久久免费高清电视剧观看| 亚洲美女中文字幕| 国产精品综合网站| 国产亚洲欧洲高清一区| 一区二区三区在线播放欧美| 永久免费精品影视网站| 久久天堂av综合合色| 91精品视频在线播放| 欧美福利视频在线| 2019av中文字幕| 色妞一区二区三区| 亚洲福利视频久久| 久久久999国产| 日本欧美一级片| 精品久久久香蕉免费精品视频| 免费成人高清视频| 九九热这里只有精品免费看| 青青a在线精品免费观看| 国产日产欧美精品| 另类色图亚洲色图| 亚洲在线免费视频| 九色精品免费永久在线| 亚洲国产成人精品电影| 亚洲aⅴ男人的天堂在线观看| 亚洲欧洲中文天堂| 欧美日韩成人在线视频| 992tv在线成人免费观看| 久久精品99国产精品酒店日本| 久久视频国产精品免费视频在线| 久久91精品国产91久久久| 疯狂欧美牲乱大交777| 国产亚洲精品久久久优势| 日韩美女免费观看| 亚洲第一视频网| 久久久日本电影| 欧美成年人视频网站欧美| 97久久国产精品| 久久国产精品网站| 亚洲欧美成人在线| 国产精品久久不能| 国产精品九九九| 久久综合网hezyo| 777精品视频| 国产精品扒开腿做爽爽爽男男|