dom.addEventListener(事件名稱,事件處理函數,布爾值)
參數
特性
btn.addEventListener('click',function(){ console.log(1); },false); btn.addEventListener('click',fn1,false); //調用時直接寫函數名稱即可 function fn1(){ console.log(1); };
可以給元素添加多個事件,且不會互相覆蓋:
btn.addEventListener('click',function(){ console.log(1); },false); btn.addEventListener('click',function(){ console.log(2); },false); //這段代碼最後會在控制台同時輸出1和2
this指向當前元素:
<body> <input type="button"> </body> btn.addEventListener('click',function(){ console.log(this); //<input type="button"> },false);
移除方法dom.removeEventListener(事件名稱,事件處理函數,布爾值)
直接移除:
btn.addEventListener('click',fn1,false); function fn1(){ console.log(1); //事件綁定被移除,無論怎麼點擊按鈕都無法在控制台輸出内容 }; btn.removeEventListener('click',fn1,false);
執行一次後移除:
btn.addEventListener('click',fn1,false); function fn1(){ console.log(1); //事件執行一次後被移除,隻會輸出一次1 btn.removeEventListener('click',fn1,false); };
注意:
btn.addEventListener('click',function(){ // 匿名函數 console.log(1); //這裡重複點擊還是會在控制台輸出1 },false); btn.removeEventListener('click',function(){ // 匿名函數,但與上述匿名函數不是同一個函數 console.log(1); },false);
該方法移除時,所有參數必須相同:
btn.addEventListener('click',fn1,false); function fn1(){ console.log(1); }; btn.removeEventListener('click',fn1,true); //由于這裡移除時第三個參數為true,與上面不同,點擊後還是會輸出1
阻止事件冒泡:
event.stopPropagation()方法
btn.addEventListener('click',fn1,false); function fn1(ev){ ev.stopPropagation(); };
再重申一遍,沒有fn1,直接寫匿名函數時,無法解綁。有命名函數,移除操作時,所有參數必須相同。
歡迎關注
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!