参见英文答案 >
jQuery – multiple $(document).ready …?6个
如果我有多个$(document).ready(…)函数,它们会相互覆盖吗?为了争论,假装正确的编码被抛出了这个.
如果我有多个$(document).ready(…)函数,它们会相互覆盖吗?为了争论,假装正确的编码被抛出了这个.
假设我有$(文件).ready(function(){…});在我的网站的脚本文件中.然后我使用第三方插件,它也使用$(document).ready(function(){…});.这会覆盖我已创建的函数,还是在文档准备就绪时jQuery将这些函数“排队”到所有运行状态?
解决方法
不,他们不会互相覆盖.每个功能都被执行.
你当然可以自己检查一下:http://jsfiddle.net/6jgGt/
或者从jQuery code本身了解:
第255行是就绪函数,其中jQuery.bindReady();调用,其中使用readyList = jQuery._Deferred();在第429行初始化readyList对象;
一旦它是一个延迟对象,传入的函数附加了readyList.done(fn);我们可以在第41行看到in the done
method元素被添加到带有callbacks.push(elem)的数组中;所以每个人都分开保存……