JQuery:重新绑定$(document).Ready()

3
JQuery 在触发 document.ready() 后会解绑 $(document).ready()
jQuery( document ).trigger( "ready" ).unbind( "ready" );

我想重新绑定$(document).ready(),这样我就可以在我的帮助函数中手动调用它(调用jQuery.ready()jQuery(document).trigger("ready"))。我可以编写一个单独的函数并在文档准备好和帮助程序中都调用它,但我不能这样做,因为我想编写一个通用的帮助程序,可以在任何页面上使用。有什么好主意吗?

3
使用一个独立的函数似乎是正确的做法。也许您可以提供更多关于为什么这不可行的细节? - James M
@Timir,语义不同,但将绑定到window上的load而不是文档上的ready是否可行? load事件可以在稍后重新触发,正如您所希望的那样。 - Frédéric Hamidi
2个回答

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
}

1

听起来不是个好主意,任何第三方插件如果看到多次见过一个准备事件,可能会出现异常。你可以使用jQuery.holdReady()来让jQuery等待,直到你允许它执行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接