淺談JavaScript事件綁定的常用方法及其優缺點分析_javascript技巧

來源:互聯網
上載者:User

傳統方式 

  element.onclick = function(e){     // ...   };

 1.  傳統綁定的優點

非常簡單和穩定,可以確保它在你使用的不同瀏覽器中運作一致

處理事件時,this關鍵字引用的是當前元素,這很有幫組

2. 傳統綁定的缺點

傳統方法只會在事件冒泡中運行,而非捕獲和冒泡

一個元素一次只能綁定一個事件處理函數。新綁定的事件處理函數會覆蓋舊的事件處理函數

事件對象參數(e)僅非IE瀏覽器可用

W3C方式 

 element.addEventListener('click', function(e){    // ...  }, false);

1. W3C綁定的優點

該方法同時支援事件處理的捕獲和冒泡階段。事件階段取決於addEventListener最後的參數設定:false (冒泡) 或 true (捕獲)。

在事件處理函數內部,this關鍵字引用當前元素。

事件對象總是可以通過處理函數的第一個參數(e)捕獲。

可以為同一個元素繫結你所希望的多個事件,同時並不會覆蓋先前綁定的事件

2. W3C綁定的缺點

IE不支援,你必須使用IE的attachEvent函數替代。

IE方式

element.attachEvent('onclick', function(){    // ...  });

1. IE方式的優點

可以為同一個元素繫結你所希望的多個事件,同時並不會覆蓋先前綁定的事件。

2. IE方式的缺點

IE僅支援事件捕獲的冒泡階段

事件監聽函數內的this關鍵字指向了window對象,而不是當前元素(IE的一個巨大缺點)

事件對象僅存在與window.event參數中

事件必須以ontype的形式命名,比如,onclick而非click

僅IE可用。你必須在非IE瀏覽器中使用W3C的addEventListener

Dean Edwards的方案(addEvent/removeEvent庫)   

1. addEvent的優點

可以在所有瀏覽器中工作,就算是更古老無任何支援的瀏覽器

this關鍵字可以在所有的綁定函數中使用,指向的是當前元素

中和了所有防止瀏覽器預設行為和阻止事件冒泡的各種瀏覽器特定函數

不管瀏覽器類型,事件對象總是作為第一個對象傳入

2. addEvent的缺點

僅工作在冒泡階段(因為它深入使用事件綁定的傳統方式)

以上就是小編為大家帶來的淺談JavaScript事件綁定的常用方法及其優缺點分析全部內容了,希望大家多多支援雲棲社區~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.