unbinding hover() - 不正常情况

时间:2011-07-08 02:18:05

标签: javascript jquery hover unbind

我有一个jQuery,每当文档准备就绪时,将带有处理程序的悬停事件绑定到具有class="widget-box"的元素。问题是,一旦文档准备就绪,悬停事件处理程序就会被绑定,但是当用户单击页面上的按钮时,会使用ajax以便重新加载页面的一部分,然后文档就绪会导致悬停事件被绑定再次对同一个元素。我不希望发生此行为,只希望将悬停事件绑定一次。我试图取消绑定hover(),只要使用unbind('mouseenter')和unbind('mouseleave')再次调用文档就绪,但不知何故,这不能删除已经绑定的悬停。有没有人对如何解决这个问题有任何想法?

谢谢!

2 个答案:

答案 0 :(得分:1)

你可能做错了什么。这样做:

$(".widget-box").unbind('mouseenter mouseleave').bind('hover', ...);

希望这会有所帮助。干杯

答案 1 :(得分:-1)

尝试使用.live()方法:)

获得资格:

为什么要加载两次相同的JavaScript?如果您只加载一次,并使用.live而不是.hover,您仍然可以将事件附加到相关元素,而无需再次运行js。

编辑:

您是否考虑过将代码包装成以下内容:

if(document.myScriptIsLoaded!=true){
    document.myScriptIsLoaded=true;
    //put your document ready here
}