如何组合两个类似的javascript函数?

如何组合两个类似的javascript函数?,javascript,performance,Javascript,Performance,有没有办法将以下两条指令组合成更有效的代码 $('.sandwiches').mouseleave(function () { $('.sandwiches').hide(); }); $('.food').mouseleave(function () { $('.sandwiches').hide(); }); 通过组合选择器: $('.sandwiches,.food').mouseleave... 通过组合选择器: $('.sandwiches,.food').mo

有没有办法将以下两条指令组合成更有效的代码

  $('.sandwiches').mouseleave(function () {
    $('.sandwiches').hide();
});
$('.food').mouseleave(function () {
    $('.sandwiches').hide();
});

通过组合选择器:

$('.sandwiches,.food').mouseleave...

通过组合选择器:

$('.sandwiches,.food').mouseleave...
:

:


可以将定义的函数附加到每个元素:

function hideElement(e) {
    $(this).hide();
}

$('.sandwiches,.food').mouseleave(hideElement);

可以将定义的函数附加到每个元素:

function hideElement(e) {
    $(this).hide();
}

$('.sandwiches,.food').mouseleave(hideElement);

我不知道。如果您对此感到担忧,您可能希望使用更新的方法:
$('.sandwiches,.food')。on('mouseleave',function.mouseleave
.on('mouseleave')
相同,因为它们都将处理程序绑定到匹配选择中的每个元素。对于委托事件(即
$('.foo').on('mouseleave','.bar',fn)
)处理程序绑定到初始匹配选择中的每个元素(即每个
.foo
元素都会有一个处理程序,但
.bar
元素可能要多得多)。我不知道。如果您对此感到担忧,您可能希望使用更新的方法:
$('.sandwiches,.food')。on('mouseleave',function.mouseleave
.on('mouseleave')
相同,因为它们都将处理程序绑定到匹配选择中的每个元素。对于委派事件(即
$('.foo').on('mouseleave','.bar',fn)
)处理程序绑定到初始匹配选择中的每个元素(即每个
.foo
元素都有一个处理程序,但
.bar
元素可能要多得多)。