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