Javascript 比较jQuery选择器的效率,哪一个效率更高

Javascript 比较jQuery选择器的效率,哪一个效率更高,javascript,jquery,html,css,Javascript,Jquery,Html,Css,以下哪种方法更有效?有什么区别 A B 视情况而定 A优点 .picker可能不仅仅是几个。将处理程序委派给父级,而不将处理程序附加到每个。picker可以减少开销 如果.picker是动态加载的元素,但需要提前设置处理程序 B优势 处理程序直接位于元素上。事件不需要在DOM中冒泡来触发处理程序 在类似的上下文中,.live被弃用,因为处理程序被放置在DOM树中最高的节点文档上。它会导致延迟。您是否尝试过在浏览器的开发工具或类似于jsperf的网站上对此进行分析?它们不可比较,因此它们的

以下哪种方法更有效?有什么区别

A

B


视情况而定

A
优点

  • .picker
    可能不仅仅是几个。将处理程序委派给父级,而不将处理程序附加到每个
    。picker
    可以减少开销
  • 如果
    .picker
    是动态加载的元素,但需要提前设置处理程序
B
优势

  • 处理程序直接位于元素上。事件不需要在DOM中冒泡来触发处理程序

在类似的上下文中,
.live
被弃用,因为处理程序被放置在DOM树中最高的节点
文档上。它会导致延迟。

您是否尝试过在浏览器的开发工具或类似于jsperf的网站上对此进行分析?它们不可比较,因此它们的“效率”是不相关的。您正在比较选择器(DOM选择)?还是事件处理的效率?我不知道你在问什么。就像@DavidThomas建议的那样,你的两行代码做了两件不同的事情。至于区别:如果有许多
.picker
元素,或者如果它们是动态创建的,那么使用B是有意义的,否则我会使用A。
  $("body").on('click', '.picker', function(){ alert("A");});
  $('.picker').on('click', function(){ alert("B");});