从性能的角度来看,这两种语法之间有什么区别,或者我将使用哪一种无关紧要?
$(document).on('click', '#button', function () {
//some code
});
和
$('#button').on('click', function () {
//some code
});
答案 0 :(得分:1)
是的,性能和功能都存在差异。
第一种方式(委托事件)将在文档元素上绑定一个事件,该事件将捕获任何冒泡到它的点击,并检查目标元素是否与选择器#button
匹配。
第二种方式(直接事件)将在与选择器#button
匹配的每个元素上绑定一个事件。
(在选择器#button
的特定情况下,当然不会有多个元素。)
如果稍后添加与选择器匹配的元素,并且希望为这些元素处理事件而不必再次绑定它,则主要使用委托事件。
使用委派事件时应该小心一点。由于事件将捕获范围内发生的每次单击并每次评估选择器,因此每次单击都会产生一些开销。如果以这种方式绑定多个事件,则需要在每次单击时评估一组选择器。