我使用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