Javascript Jquery代码在';上的性能;。在';方法

Javascript Jquery代码在';上的性能;。在';方法,javascript,jquery,Javascript,Jquery,以下代码对应用程序的性能有影响吗 $("body").on('click','#id',function () { //code to be executed }); 如果是,请任何人解释一下原因 是的,但是很轻微。原因是它会捕获对文档主体的每次单击,然后评估是否从#id冒泡,如果不是,则退出。将处理程序附加到包含所有事件的最严格定义的元素上是一个好策略,因为您很少需要像body那样广泛-例如,$(“#StuffGoesher”)。在('click'、'#id',function…。如果

以下代码对应用程序的性能有影响吗

$("body").on('click','#id',function () {
   //code to be executed
});

如果是,请任何人解释一下原因

是的,但是很轻微。原因是它会捕获对文档
主体的每次单击,然后评估是否从
#id
冒泡,如果不是,则退出。将处理程序附加到包含所有事件的最严格定义的元素上是一个好策略,因为您很少需要像
body
那样广泛-例如,
$(“#StuffGoesher”)。在('click'、'#id',function…
。如果您确实知道元素的ID并且该元素存在,则最好使用
$('#ID')将处理程序直接附加到元素上。在('click',function…)
上,是的,但很少。原因是它会捕获对文档
主体的每次单击,然后评估是否从
#id
冒泡,如果不是,则退出。将处理程序附加到包含所有事件的最严格定义的元素上是一个好策略,因为您很少需要像
body
那样广泛-例如,
$(“#StuffGoesher”)。在('click'、'#id',function…
。如果您确实知道元素的ID并且该元素存在,则最好使用
$('#ID')将处理程序直接附加到元素上。在('click',function…

上,单击(/code>)

是-但是是一个非常小的处理程序。可能是一位数毫秒。不要将事件直接捕获在
#id
元素上,而必须等待事件冒泡到
主体
元素。请注意,这种差异不是直接使用()上的
造成的,而是因为您使用的是委托事件处理程序。感谢您的回复!,那么,为了瞄准未来的元素,还有什么替代方法呢?没有一种方法——您使用的代码是最好的。好吧,在这种情况下,如果我使用最接近的父Id而不是“body”,将有助于提高性能?是的,这将遵循最佳实践是的,但是一个无穷小的方法。可能是一位数毫秒。不要将事件直接捕获在
#id
元素上,而必须等待事件冒泡到
主体
元素。请注意,这种差异不是直接使用()上的
造成的,而是因为您使用的是委托事件处理程序。感谢您的回复!,那么,为了针对未来的元素,还有什么替代方案呢?没有一个-您使用的代码是最好的。好吧,在这种情况下,如果我使用最接近的家长Id而不是“body”将有助于提高性能?是的,这将遵循最佳实践答案,如果我的理解是正确的,我可以使用最接近的“容器”id而不是“主体”,对吗?谢谢你的回答,如果我的理解是正确的,我可以使用最接近的“容器”id而不是“主体”,对吗?