当选择器是文档时,jquery'on'函数是否有效

时间:2013-10-22 21:26:29

标签: jquery performance

使用时是否有任何问题 Jquery的.on()函数如下:

$(document).on("click", "#myDynamicallyLoadedElement", function() {});

VS。类似的东西:

$(".parentElement").on("click", "#myDynamicallyLoadedElement", function() {});

我觉得$(文档)的使用效率会低得多,并且可能导致浏览器的性能或其他问题。

有没有人知道使用$(document).on()是否有任何问题?

2 个答案:

答案 0 :(得分:0)

您希望尽可能缩小范围,但在添加事件侦听器时避免重复自己。现在,$(document)当你真正想要定位整个文档时没有任何问题,但如果没有,那么你可能会受到jQuery必须过滤的数百个事件的影响 - 这有点效率低下。相反,最好只定位您想要听的元素。为了在该示例中获得最佳性能,请执行以下操作:

$("#myDynamicallyLoadedElement").click(function () {});

由于您使用了ID,我假设文档中只有一个myDynamicallyLoadedElement。

click()on("click", )

的简写

答案 1 :(得分:0)

使用$(document).on的两个主要原因是,如果您不知道内容将在何处,或者您是否在加载其他html之前定义事件处理程序。对于大多数情况,这两个陈述都不是真的,所以你应该尽可能地遵守D.R.Y原则。