2012-01-30 95 views
3

一旦document.ready()被触发,JQuery解除绑定$(document).ready()

jQuery(document).trigger("ready").unbind("ready"); 

我要重新绑定的$(document).ready(),这样我可以手动调用它在我的助手功能(呼叫jQuery.ready() OR jQuery(document).trigger("ready"))。

我可以编写一个单独的函数,并在文档准备和助手中调用,但我不能这样做,因为我想编写一个可以在任何页面上使用的通用助手。

任何想法如何做到这一点?

+3

使用单独的功能听起来就像是正确的事情。也许你可以提供更多关于为什么这是不实际的细节? – 2012-01-30 18:38:58

+0

@Timir,语义是不同的,但是会绑定到'window'上的'load'而不是''''在'document'上是一个选项?您可能会稍后重新触发'load'事件,就像您似乎想要的那样。 – 2012-01-30 18:49:33

回答

1

这听起来不是一个好主意,任何第三方插件如果他们看到一个准备好的事件不止一次,可能会表现不好。有一个jQuery.holdReady(),你可以用它来让jQuery等待,直到你给它继续。

1

如果要触发.ready()方法多次内部的逻辑,只需将逻辑在自己的方法:

$(document).ready(function() { 
    myReadyFunction(); // Called when the DOM is ready 
}); 

function myReadyFunction() { // Called when the DOM is ready & whenever you want 
    //Do stuff 
}