0

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

谢谢!

4

2 回答 2

1

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

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

希望这可以帮助。干杯

于 2011-07-08T02:45:16.143 回答
-1

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

为了证实:

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

编辑:

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

if(document.myScriptIsLoaded!=true){
    document.myScriptIsLoaded=true;
    //put your document ready here
}
于 2011-07-08T02:20:22.117 回答