防止jQuery就绪处理程序触发

Dan*_*Dan 3 javascript jquery javascript-events

我有一种情况,在某种情况下,我想要任何jQuery ready处理程序绑定不会实际触发DOMContentReady事件.这些处理程序绑定在各个地方,包括各种包含文件,插件等.因此,虽然我可以在靠近页面顶部的脚本中设置某种全局变量,并且if在每个$(document).ready()绑定之前设置检查此变量的条件,但我宁愿不这样做.

理想情况下,我正在寻找两件事之一,

  • 我可以在包含之前在jQuery对象上设置的属性,它会告诉它忽略调用 .ready()
  • 我可以在DOMContentReady触发之前在内联脚本中调用文档末尾的方法取消绑定ready()处理程序.

显而易见的一个,$(document).unbind('ready')不这样做,我猜因为.ready()不是普通的事件绑定.

可以这样做吗?如果是这样,怎么样?

我有一个模糊的想法是扩展jQuery原型,并ready()用一个检查我将要引入的新属性的方法替换.那有意义吗?

Pra*_*han 7

你应该使用holdready

$.holdReady(true);
$.getScript("myplugin.js", function() {
  $.holdReady(false);
});  
Run Code Online (Sandbox Code Playgroud)