2009-10-13 50 views
42

我试过$.unbind('hover'),这不起作用。

+0

你指定什么元素从解除绑定事件?例如$(“a”)。unbind(“hover”) – Marius 2009-10-13 05:43:45

+0

是的,它由$(“#id”)。hover(...)和$(“#id”)添加。不管用。 – Mask 2009-10-13 05:47:57

+2

可能的重复[如何在jQuery中解除“悬停”?](http://stackoverflow.com/questions/805133/how-do-i-unbind-hover-in-jquery) – madth3 2013-08-15 16:50:25

回答

74

hover功能它只是两个处理程序绑定到mouseentermouseleave事件short-hand,你应该拆散他们:

$('#item').unbind('mouseenter mouseleave'); 
+4

您可以结合这些调用: '.unbind('mouseover mouseout');' – nickf 2009-10-13 05:47:01

+0

感谢@nickf,编辑后添加您的建议。 – CMS 2009-10-13 05:49:06

+1

它仍然不起作用 – Mask 2009-10-13 05:49:45

-2

您也可以尝试:

$('#item').bind('hover', function(){return false})

+6

将额外事件处理程序绑定到对象不会覆盖以前绑定的处理程序。这可能会奏效,因为'return false'可能会阻止传播,但这不是一个好的解决方案。 – nickf 2009-10-13 06:05:38

2

tringger解除绑定点击一下

$('.item').click(function() { 
$('.item').unbind('mouseenter mouseleave'); 
}); 
11

Api documentation on hover

例:要解除绑定上面的例子中使用:

$("td").off('mouseenter mouseleave'); 
+2

'off'和'unbind'有什么区别? – Ian 2013-12-16 22:45:58

+4

如[** unbind()**](https://api.jquery.com/unbind/)中所定义: 可以使用.unbind()删除使用.bind()附加的Event处理程序。 (从jQuery 1.7开始,.on()和.off()方法更适合附加和删除元素上的事件处理程序。)_ – diynevala 2014-07-30 07:58:41