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

        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號
        主站蜘蛛池模板: 欧美XXXX黑人又粗又长精品| 热久久国产欧美一区二区精品| 国产av无码专区亚洲国产精品| 人妻无码精品久久亚瑟影视| 国产精品久久久久9999高清| 亚洲国产精品无码久久久秋霞2| 国产精品麻豆欧美日韩ww| A级精品国产片在线观看| 亚洲第一区精品日韩在线播放| 国产精品成人无码久久久久久| 国产成人精品午夜福利| 亚洲av午夜精品一区二区三区| 国产精品免费久久久久影院| 国产日韩精品在线| 国产精品一久久香蕉国产线看观看| 亚洲精品成人片在线观看| 久久精品成人免费国产片小草| 久久免费精品视频| 东京热TOKYO综合久久精品| 亚洲AV无码久久精品成人| 四库影院永久四虎精品国产| 国产午夜精品一区二区| 亚洲国产综合91精品麻豆| 久久国产精品99精品国产987| 97久久久久人妻精品专区| 国产麻豆一精品一AV一免费| 色欲久久久天天天综合网精品 | 精品日本一区二区三区在线观看| 欧美精品在线一区| 久久久久夜夜夜精品国产| 久久99精品久久久久久| 久久精品国产只有精品2020| 久久国产精品久久| 日韩精品在线免费观看| 91久久精品国产免费直播| 国产成人精品久久亚洲| 国产专区日韩精品欧美色| 久热精品视频第一页| 无码乱码观看精品久久| 中文精品99久久国产 | 正在播放国产精品每日更新 |