Atitit事件代理機制原理 基於css class的事件代理

來源:互聯網
上載者:User

標籤:執行   nod   瀏覽器   strong   geo   mon   過程   parent   利用   

 

Atitit事件代理機制原理 基於css class的事件代理

 

 

1.1. 在javasript中delegate這個詞經常出現,看字面的意思,代理、委託1

1.2. 事件代理1

1.3. 代理標準化規範1

1.3.1. jQuery和Dojo中delegate函數2

1.3.2. 優點2

 

 

1.1.  在javasript中delegate這個詞經常出現,看字面的意思,代理、委託

如果我們不想或不能夠直接操縱目標對象,我們可以利用delegate建立一個代理對象來調用目標對象的方法,從而達到操縱目標對象的目的。代理對象要擁有目標對象的引用。這就是事件代理(也就是說不會直接去操縱對象)

 

 

註冊事件::綁定    cls:cls_left >>fun

 

執行事件,遍曆obj class name,for exe cls fun..

 

1.2.  事件代理

首先介紹一下JavaScript的事件代理。事件代理在JS世界中一個非常有用也很有趣的功能。當我們需要對很多元素添加事件的時候,可以通過將事件添加到它們的父節點而將事件委託給父節點來觸發處理函數。這主要得益於瀏覽器的事件冒泡機制

 

1.3.  代理標準化規範

 

// 擷取父節點,並為它添加一個click事件

document.getElementById("parent-list").addEventListener("click",function(e) {

  // 檢查事件來源e.targe是否為Li

  if(e.target && e.target.nodeName.toUpperCase == "LI") {

    // 真正的處理過程在這裡

    console.log("List item ",e.target.id.replace("post-")," was clicked!");

  }

});

 

1.3.1.  jQuery和Dojo中delegate函數

下面看一下Dojo和jQuery中提供的事件代理介面的使用方法。

首先是jQuery:

$("#link-list").delegate("a", "click", function(){

  // "$(this)" is the node that was clicked

  console.log("you clicked a link!",$(this));

});

jQuery的delegate的方法需要三個參數,一個選取器,一個時間名稱,和事件處理函數。

1.3.2.  優點

通過上面的介紹,大家應該能夠體會到使用事件委託對於web應用程式帶來的幾個優點:

1.管理的函數變少了。不需要為每個元素都添加監聽函數。對於同一個父節點下面類似的子項目,可以通過委託給父元素的監聽函數來處理事件。

2.可以方便地動態添加和修改元素,不需要因為元素的改動而修改事件綁定。

3.JavaScript和DOM節點之間的關聯變少了,這樣也就減少了因循環參考而帶來的記憶體流失發生的機率。

 

 

 

 

JavaScript事件代理和委託(Delegation) - majian_1987的專欄 - 部落格頻道 - CSDN.NET.html

 

作者:: 綽號:老哇的爪子claw of Eagle 偶像破壞者Iconoclast image-smasher

捕鳥王"Bird Catcher 王中之王King of Kings 虔誠者Pious 宗教信仰捍衛者 Defender of the Faith. 卡拉卡拉紅鬥篷 Caracalla red cloak

簡稱:: Emir Attilax Akbar 埃米爾 阿提拉克斯 阿克巴

全名::Emir Attilax Akbar bin Mahmud bin  attila bin Solomon Al Rapanui 

埃米爾 阿提拉克斯 阿克巴 本 馬哈茂德 本 阿提拉 本 所羅門  阿爾 拉帕努伊   

常用名:艾提拉(艾龍),   EMAIL:[email protected]

轉載請註明來源:attilax的專欄   http://www.cnblogs.com/attilax/

--Atiend

 

 

Atitit事件代理機制原理 基於css class的事件代理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.