3

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

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

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

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

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

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

4

1 回答 1

7

你应该使用holdready

$.holdReady(true);
$.getScript("myplugin.js", function() {
  $.holdReady(false);
});  
于 2012-10-09T05:00:21.343 回答