jQuery重新绑定悬停事件(帮助程序)

时间:2008-11-25 13:45:32

标签: jquery binding

当页面完成加载时,我调用一个函数将hover事件放在$('a.tooltip')上。当我想取消绑定此事件时,我会执行以下操作:

   $('a.tooltip').unbind('mouseover mouseout');

有效!但是,当我想重新绑定悬停事件并且我再次调用首次加载文档的函数时,它不会重新绑定悬停帮助器。我该如何重新绑定它?

谢谢,

2 个答案:

答案 0 :(得分:3)

你确定解除绑定工作正常吗?根据我的经验,.hover()确实正确重新绑定,但我不得不使用这种解除绑定的语法:

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

当我尝试将两个事件放入一个unbind()时,它只解除其中一个事件。

我想知道你的情况是否正在发生? (或者,mouseover vs mouseenter等的选择是否重要?)

更新

根据quirksmode.orgmouseentermouseleave是特定于IE的事件,但正如Jimmy在评论中指出的那样,jQuery也为其他浏览器实现了这些事件。

答案 1 :(得分:0)

我发现当我使用bind方法时,事情可能有点挑剔。您可能希望尝试使用悬停(over,out)功能:

 $(this).hover( 
    function() {
       if (okayToHover) { dowhatever; } 
    },
    function() {
       if (okayToUnhover) { undowhatever; }
    });

我知道这似乎有点迂回,但我发现悬停功能让我对正在发生的事情有了更多的控制,而且无论出于什么原因它似乎都有所改善。这仅仅是我的经验......