如果我有多个$(document).ready(...)
函数,它们是否互相覆盖?为了辩论的缘故,假装正确的编码被扔在这扇门上。
说我在我的网站的脚本文件中有一个$(document).ready(function() {...});
。然后我使用第三方插件,也使用$(document).ready(function() {...});
。这会覆盖我已经创建的函数,或者当文档准备就绪时,jQuery是否会将这些函数“排队”到全部运行?
如果我有多个$(document).ready(...)
函数,它们是否互相覆盖?为了辩论的缘故,假装正确的编码被扔在这扇门上。
说我在我的网站的脚本文件中有一个$(document).ready(function() {...});
。然后我使用第三方插件,也使用$(document).ready(function() {...});
。这会覆盖我已经创建的函数,或者当文档准备就绪时,jQuery是否会将这些函数“排队”到全部运行?
不,他们不会互相推翻。每个功能都被执行。
你当然可以很容易地检查这个自己:http://jsfiddle.net/6jgGt/
还是从jQuery code本身的理解:
255线是现成的功能,其中jQuery.bindReady();
被称为除其他事情初始化上线readyList
对象429 readyList = jQuery._Deferred();
而且一旦它的延期对象传递的功能是附加与readyList.done(fn);
,我们CA n在第41行上看到in the done
method该元素被添加到一个数组中callbacks.push(elem);
因此每一个都被单独保存...
不,它们不会相互覆盖。就像你说的,他们正在排队。
不,请记住,如果你使用它很多:http://encosia.com/dont-let-jquerys-document-ready-slow-you-down/ – Paulpro
@PaulPRO - 伟大的联系。我从来没想过那个。 – Spidy
@Spidy:在创建这个问题时,你甚至看过建议的问题吗?这些问题已经有很多了。这是其他约5个问题的直接副本。 –