我使用jQuery 2.0.3jQuery.on與家長和孩子選擇VS只是孩子選擇
的使用是有什麼區別:
$(parentSelector).on("click", childSelector, function() {...});
和
$(childSelector).on("click", function() {...});
爲什麼我曾經想用前者而不是後者?
我使用jQuery 2.0.3jQuery.on與家長和孩子選擇VS只是孩子選擇
的使用是有什麼區別:
$(parentSelector).on("click", childSelector, function() {...});
和
$(childSelector).on("click", function() {...});
爲什麼我曾經想用前者而不是後者?
第一個被稱爲事件委託,如果您childSelector
元素添加到DOM 後,
感謝這些示例 - 它們使它更易於理解! – Andrey 2014-09-21 03:46:03
示例代碼:
考慮一個表1000行。下面附加一個處理程序1000個元素:
$("#dataTable tbody tr").on("click", function() {
alert($(this).text());
});
這將工作,但如果我們添加行,我們不得不再次附上事件處理程序。
隨着委派方法中,事件處理程序僅附接至tbody
,事件僅必須冒泡從tr
到tbody
:
$("#dataTable tbody").on("click", "tr", function() {
alert($(this).text());
});
+1謝謝蒂莫西 - 我不知何故錯過了這個例子,它也明確了這個區別。 – Andrey 2014-09-21 04:56:07
第二個是相同的'$(SEL) .click(function(){...}';它沒有使用'on()',事件委託的主要目的。請參閱ROX的答案。 – isherwood 2014-09-21 03:34:41