我想延迟加载 jQuery,但我有少量的内联 javascript 在 $.ready() 上运行。由于未加载 jQuery,因此这些行会引发错误并且永远不会运行。有没有一种方法可以使 $.ready() 成为可用函数,但等待执行直到加载 jQuery?
谢谢!
我想延迟加载 jQuery,但我有少量的内联 javascript 在 $.ready() 上运行。由于未加载 jQuery,因此这些行会引发错误并且永远不会运行。有没有一种方法可以使 $.ready() 成为可用函数,但等待执行直到加载 jQuery?
谢谢!
解决此问题的通用方法的一种选择是将您的内联 javascript 放入一个函数中,并将该函数添加到一个全局可访问的数组中 - 不要调用它。这些本质上是您想要安排document.ready()
何时document.ready
可用的功能。
然后,当您加载 jQuery 时,您设置了一个document.ready()
处理程序,该处理程序循环遍历该数组中的所有函数并调用它们。
// declare global at the top of your web page
var readyFns = [];
// in your inline code, add a function to the readyFns array
readyFns.push(myInlineFn);
// when your jQuery code loads, do this:
$(document).ready(function() {
for (var i = 0; i < readyFns.length; i++) {
readyFns[i]();
}
});
如果你想使用匿名函数,你可以像这样做中间步骤:
// in your inline code, add a function to the readyFns array
readyFns.push(function() {
// put your code here
});
除了使用.ready
,您可以使用非 jQuery 等效项,例如window.onload
,但这些往往与 不兼容.ready
,所以我不确定它们是否能满足您的需求。
显然有人已经提取了 jQuery 的 ready 函数,所以它可以单独使用:http ://code.google.com/p/domready/
你应该:
example();
example() { }
(document).ready()