jquery on()根据文档委派事件或更具体

时间:2013-07-29 18:58:24

标签: jquery javascript-events

查看jQuery API docs,将on()事件处理程序附件附加到$(document)是否有缺点,而不是更具体?

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

VS

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

绑定到$(document)唯一可能的缺点我可以看到,如果在整个站点中使用JS,则绑定到错误元素的可能性更大。但是,我发现$(document)版本的可读性略好一些。但是,有更重要的理由选择一个与另一个吗?

this fiddle上的两个例子。

2 个答案:

答案 0 :(得分:1)

第二个是更好,更快的性能...你将事件委托给最接近的静态父级,它始终优于文档本身......因为它不必遍历所有元素和文档作为一个整体

答案 1 :(得分:0)

性能。

虽然在页面加载后将要附加事件处理程序的元素插入到DOM中时,您将使用第一个。