当页面完成加载时,我调用一个函数将hover事件放在$('a.tooltip')上。当我想取消绑定此事件时,我会执行以下操作:
$('a.tooltip').unbind('mouseover mouseout');
有效!但是,当我想重新绑定悬停事件并且我再次调用首次加载文档的函数时,它不会重新绑定悬停帮助器。我该如何重新绑定它?
谢谢,
冰
答案 0 :(得分:3)
你确定解除绑定工作正常吗?根据我的经验,.hover()确实正确重新绑定,但我不得不使用这种解除绑定的语法:
$(this).unbind('mouseenter').unbind('mouseleave');
当我尝试将两个事件放入一个unbind()时,它只解除其中一个事件。
我想知道你的情况是否正在发生? (或者,mouseover
vs mouseenter
等的选择是否重要?)
根据quirksmode.org,mouseenter
和mouseleave
是特定于IE的事件,但正如Jimmy在评论中指出的那样,jQuery也为其他浏览器实现了这些事件。
答案 1 :(得分:0)
我发现当我使用bind方法时,事情可能有点挑剔。您可能希望尝试使用悬停(over,out)功能:
$(this).hover(
function() {
if (okayToHover) { dowhatever; }
},
function() {
if (okayToUnhover) { undowhatever; }
});
我知道这似乎有点迂回,但我发现悬停功能让我对正在发生的事情有了更多的控制,而且无论出于什么原因它似乎都有所改善。这仅仅是我的经验......