2014-09-21 124 views
2

我使用jQuery 2.0.3jQuery.on與家長和孩子選擇VS只是孩子選擇

的使用是有什麼區別:

$(parentSelector).on("click", childSelector, function() {...}); 

$(childSelector).on("click", function() {...}); 

爲什麼我曾經想用前者而不是後者?

+0

第二個是相同的'$(SEL) .click(function(){...}';它沒有使用'on()',事件委託的主要目的。請參閱ROX的答案。 – isherwood 2014-09-21 03:34:41

回答

2

第一個被稱爲事件委託,如果您childSelector元素添加到DOM

+1

感謝這些示例 - 它們使它更易於理解! – Andrey 2014-09-21 03:46:03

1

示例代碼:

考慮一個表1000行。下面附加一個處理程序1000個元素:

$("#dataTable tbody tr").on("click", function() { 
    alert($(this).text()); 
}); 

這將工作,但如果我們添加行,我們不得不再次附上事件處理程序。

隨着委派方法中,事件處理程序僅附接至tbody,事件僅必須冒泡從trtbody

$("#dataTable tbody").on("click", "tr", function() { 
    alert($(this).text()); 
}); 
+0

+1謝謝蒂莫西 - 我不知何故錯過了這個例子,它也明確了這個區別。 – Andrey 2014-09-21 04:56:07