事件繫結on和addEventListener的區別
阿新 • • 發佈:2019-02-14
今天在敲程式碼的時候遇到的問題,剛好有空。就記了下來。
首先,我們應該知道,在繫結事件的時候有三種方法。
拿最簡單的click舉例說明下。第一種,直接在html中,使用onclick;第二種,在js程式碼中使用元素.click來呼叫;第三種就是事件元素.addEventListener()來呼叫。
那麼他們的區別在哪呢?
<div class="test">
這是一段測試使用程式碼
</div>
在js程式碼中用on繫結,如下
window.onload = function () { var box = document.getElementsByClassName('test')[0]; box.onclick = function () { console.log('點選事件1'); }; box.onclick = function () { console.log('點選事件2'); }; //點選事件2 }
很清楚在控制檯可以看到輸出的只有 “點選事件2”;
window.onload = function () { var box = document.getElementsByClassName('test')[0]; box.addEventListener('click',function () { console.log('點選事件1'); }); box.addEventListener('click',function () { console.log('點選事件2'); }); //點選事件1 //點選事件2 }
那麼顯而易見,使用on繫結的事件會覆蓋,而addEventListener則可以為一個元素繫結多個事件,且保證全都會被執行。
關於addEventListener還有第三個引數,如下