jQuery on()语法的不同之处

时间:2015-02-12 19:02:12

标签: jquery performance

从性能的角度来看,这两种语法之间有什么区别,或者我将使用哪一种无关紧要?

$(document).on('click', '#button', function () {
//some code
});

$('#button').on('click', function () {
//some code
});

1 个答案:

答案 0 :(得分:1)

是的,性能和功能都存在差异。

第一种方式(委托事件)将在文档元素上绑定一个事件,该事件将捕获任何冒泡到它的点击,并检查目标元素是否与选择器#button匹配。

第二种方式(直接事件)将在与选择器#button匹配的每个元素上绑定一个事件。

(在选择器#button的特定情况下,当然不会有多个元素。)

如果稍后添加与选择器匹配的元素,并且希望为这些元素处理事件而不必再次绑定它,则主要使用委托事件。

使用委派事件时应该小心一点。由于事件将捕获范围内发生的每次单击并每次评估选择器,因此每次单击都会产生一些开销。如果以这种方式绑定多个事件,则需要在每次单击时评估一组选择器。