我需要订购一些onReady电话,我正在查看这些问题here和here,但一无所获。然而,很久以前,也许现在有一些东西可以解决这个问题。 所以我需要做这样的事情:
$(function (){ console.log('second call'); })
$(function (){ console.log('first call'); })
澄清为什么我需要这样做:
我需要的原因是这些调用是通过所有应用程序传播的,最重要的是:其中一些来自第三方,我无法控制它们。但我确实需要在第一时间调用我的方法,我需要在文档和文档中放置脚本。我正在处理的代码是遗留代码,我无法对其进行大量更改,因此重新考虑您所采用的方式的答案对我来说没有多大意义。如果可能或任何解决方法,我只是徘徊。
答案 0 :(得分:3)
如果要控制函数执行的顺序,则应将它们放在同一个回调函数中。
$(function() {
console.log('second call');
console.log('first call');
});
答案 1 :(得分:0)
原则是,ready()函数将数据添加到数组(readyList),然后按添加的顺序执行它们。根据本文here
,操作readyList数组可以解决您的要求答案 2 :(得分:0)
您可以使用数组存储函数,并使用一个onReady调用以正确的顺序调用它们。
var calls = [];
calls[2] = function() {
console.log("third call");
};
calls[1] = function() {
console.log("second call");
};
calls[0] = function() {
console.log("first call");
};
$(function() {
for (var index = 0; index < calls.length; index += 1) {
calls[index]();
}
});
答案 3 :(得分:0)
我很早就开始使用.ready()(在jQuery加载之后)从数组中执行函数。因为它在源代码的早期,它首先执行.ready()。在页面的下方,我可以向数组中添加函数,因此它们都会在任何其他.ready()s之前执行。
我已经将它包装在.beforeReady()函数中,并将其作为jQuery-Before-Ready放在GitHub上,供有兴趣的人使用。
https://github.com/aim12340/jQuery-Before-Ready
用法:
$.beforeReady(function() {
alert("Ere I am JH")
});