jQuery ready函数处理疑惑

研究2.2.4版本的源码时发现jQuery对象下ready函数使用一个变量(jQuery.isReady)用以记录DMO是否已经ready,尝试多次调用$(function(){})来观察这个变量的作用发觉不管写多少个$(function(){}),completed回调函数只触发了一次,意味着jQuery.ready()也只被触发一次,那写在jQuery.ready函数中的isReady变量不就没有用处了么,为何要用一个变量来记录以防止多次触发呢

阅读 2.9k
2 个回答

触发前isReady是false,触发的时候先判断isReady是否为false,为false则触发相应的函数,并且设置isReady为true确保不再触发。
机制应该是如此,其他不太清楚麻烦贴一些代码。

比如弹出层里有一段js $(function() { alert('add modal') });
这段js执行时,Ready早已触发,这种情况jquery直接调用,不用再等待了,也等不到了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题