如果我需要使用jQuery的
哪一个是最快的?
【编辑】额外细节:显然,我们需要考虑两个方面,第一个是当页面加载完成并且事件处理程序被设置时,只使用一个
.on()
将多个事件附加到同一个元素上,我应该将所有事件组合到一个调用中,并使用event.type
来区分它们吗?还是应该为每个事件单独使用一个.on()
调用?
组合事件:
$('#main').on('mouseenter mouseleave click', '.myElement', function(event) {
if (event.type == 'click') {
return false;
} else if (event.type == 'mouseenter') {
$(this).addClass('active');
} else if (event.type == 'mouseleave') {
$(this).removeClass('active');
}
}
分离事件:
$('#main').on('click', '.myElement', function(event) {
return false;
}
$('#main').on('mouseenter', '.myElement', function(event) {
$(this).addClass('active');
}
$('#main').on('mouseleave', '.myElement', function(event) {
$(this).removeClass('active');
}
哪一个是最快的?
【编辑】额外细节:显然,我们需要考虑两个方面,第一个是当页面加载完成并且事件处理程序被设置时,只使用一个
.on()
调用会更快。然而,第二个方面是这些事件实际上将何时触发,当鼠标悬停或单击.myElement
时,我认为这更重要,因为它会发生很多次,而.on()
调用仅会被调用一次(或更多次,但仍少于事件本身)。
#main
元素一次。 - Broxzier