如何在jQuery中解绑“hover”?

2022-08-30 05:32:24

如何在jQuery中解绑“hover”?

这不起作用:

$(this).unbind('hover');

答案 1

$(this).unbind('mouseenter').unbind('mouseleave')

或者更简洁地说(感谢格兰特@Chad):

$(this).unbind('mouseenter mouseleave')


答案 2

实际上,jQuery文档比上面显示的链接示例具有更简单的方法(尽管它们可以正常工作):

$("#myElement").unbind('mouseenter mouseleave');

从 jQuery 1.7 开始,您还可以使用 $.on()$.off() 进行事件绑定,因此要解除悬停事件的绑定,您将使用更简单、更整洁的:

$('#myElement').off('hover');

伪事件名称“hover”被用作“mouseenter mouseleave”的简写,但在早期的jQuery版本中处理方式不同;要求您明确删除每个文本事件名称。使用 now 允许您使用相同的速记删除两个鼠标事件。$.off()

编辑2016年:

仍然是一个流行的问题,所以值得提请注意@Dennis98在下面的评论中的观点,即在jQuery 1.9 +中,“悬停”事件被弃用,取而代之的是标准的“mouseenter mouseleave”调用。因此,您的事件绑定声明现在应如下所示:

$('#myElement').off('mouseenter mouseleave');