防止jQuery就绪处理程序触发

时间:2012-10-09 04:55:14

标签: javascript jquery javascript-events

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:7)

你应该使用holdready

$.holdReady(true);
$.getScript("myplugin.js", function() {
  $.holdReady(false);
});