站長資訊網
        最全最豐富的資訊網站

        javascript如何添加事件和刪除事件

        js添加移除事件的方法:1、使用addEventListener()方法添加事件,用于向指定元素添加事件句柄;2、使用removeEventListener()方法刪除事件,用于移除由addEventListener()方法添加的事件句柄。

        javascript如何添加事件和刪除事件

        本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

        一、addEventListener()和removeEventListener()講解

        addEventListener()與removeEventListener()用于處理指定和刪除事件處理程序操作。

        它們都接受3個參數:如 addEventListener("事件名" , "事件處理函數" , "布爾值"); (注:事件名不含"on",如“click”)

        現在的版本可以省略第三個參數,默認值為false

        示例:

        要在body上添加事件處理程序,可以使用下列代碼:

        document.body.addEventListener('touchmove', function (event) {     event.preventDefault(); },false);

        通過addEventListener()添加的事件處理程序只能使用removeEventListener()來移除;移除時傳入的參數與添加處理程序時使用的參數相同。這也意味著通過addEventListener()添加的匿名函數無法移除

        錯誤用法示例:

        document.body.addEventListener('touchmove', function (event) {     event.preventDefault(); },false); document.body.removeEventListener('touchmove', function (event) {     event.preventDefault(); },false);

        這個例子中,使用addEventListener()添加一個事件處理程序。雖然調用removeEventListener(0是看似使用了相同的參數,但實際上,第二個參數與傳入addEventListener()中的那一個完全不同的函數。而傳入removeEventListener()中的事件處理程序函數必須與傳addEventListener()中的相同

        正確用法示例:

        function bodyScroll(event){     event.preventDefault(); } document.body.addEventListener('touchmove',bodyScroll,false); document.body.removeEventListener('touchmove',bodyScroll,false);

        重寫后的這個例子在addEventListener()和removeEventListener()中用的是相同的函數。

        共用函數不能帶參數,錯誤用法示例:

        function bodyScroll(event){     event.preventDefault(); } document.body.addEventListener('touchmove',bodyScroll(),false); document.body.removeEventListener('touchmove',bodyScroll(),false);

        總結:

        1:相同事件綁定和解除,需要使用共用函數;綁定和解除事件時 事件沒有"on" 即onclick寫成click

        2:共用函數不能帶參數;

        二、addEventListener()與removeEventListener()的第三個參數詳解

        布爾值參數是true,表示在捕獲階段調用事件處理程序;就是最不具體的節點先接收事件,最具體的節點最后接收事件

        如果是false,在冒泡階段調用事件處理程序;則是先尋找指定的位置,由最具體的元素接收,然后逐級向上傳播至最不具體的元素的節點(文檔)

        DOM事件流如圖(剪自javascript高級程序設計):

        javascript如何添加事件和刪除事件

        由圖可知捕獲過程要先于冒泡過程, 即 true的觸發順序在false前面

        實例測試

        HTML內容:

        <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>添加事件&&解綁事件</title> </head> <body>     <p id="out">         <p>最外面</p>         <p id="middle">             <p id="inner">最里面</p>         </p>     </p> </body> </html>js內容:(第1種情況)

        addEventListener的第三個參數有兩種情況:ture & false 所以有2*2*2=8種情況

        結論:

        1.true的觸發順序總是在false前面

        2.如果多個均為true 則外層觸發先于內層

        3.如果多個均為false 則內層觸發先于外層

        【推薦學習:javascript高級教程】

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产成人无码精品一区二区三区| 99re这里只有精品6 | 91久久精品91久久性色| 久久精品三级视频| 麻豆精品久久精品色综合| 日韩精品无码一本二本三本| 免费精品久久久久久中文字幕| 99久久精品这里只有精品| 3D动漫精品一区二区三区| 亚洲国产成人精品无码区在线观看 | 欧美国产精品va在线观看| 尤物国产在线精品福利一区| 国产午夜福利精品一区二区三区| 亚洲一日韩欧美中文字幕欧美日韩在线精品一区二 | 华人亚洲欧美精品国产| 久久精品无码专区免费东京热| 四虎影院国产精品| 久久无码人妻精品一区二区三区 | 无码人妻精品一区二区三区99仓本 | 中文精品久久久久国产网址| 国产精品一国产精品| 国产成人亚洲合集青青草原精品 | 2022国内精品免费福利视频| 久久久久亚洲精品天堂| 精品无码AV无码免费专区| 久久99国产综合精品| 国产亚洲精品精华液| 精品国产一区二区三区不卡| 国产精品三级在线观看无码| 国产福利精品一区二区| 国产精品v欧美精品v日韩精品| 91视频精品全国免费观看| 久久精品国产半推半就| 91精品视频在线| 国产精品美女久久久久AV福利| 国产精品福利区一区二区三区四区 | 亚洲第一永久AV网站久久精品男人的天堂AV | 国产精品九九久久精品女同亚洲欧美日韩综合区 | 国产成人精品日本亚洲专区| 国产精品美女网站| 欧美日韩精品系列一区二区三区国产一区二区精品 |