1. 程式人生 > >事件繫結on和addEventListener的區別

事件繫結on和addEventListener的區別

今天在敲程式碼的時候遇到的問題,剛好有空。就記了下來。

首先,我們應該知道,在繫結事件的時候有三種方法。

拿最簡單的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還有第三個引數,如下