查看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上的两个例子。
答案 0 :(得分:1)
第二个是更好,更快的性能...你将事件委托给最接近的静态父级,它始终优于文档本身......因为它不必遍历所有元素和文档作为一个整体
答案 1 :(得分:0)
性能。
虽然在页面加载后将要附加事件处理程序的元素插入到DOM中时,您将使用第一个。