在 DOM 之后加载 jQuery,如何在加载 jQuery 之前使 $.ready() 可用于我的页面

  • 本文关键字:jQuery 加载 用于 ready 之后 DOM 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/

你应该:

  1. 将 ready 替换为函数调用,例如 example();
  2. 创建一个函数,例如 example() { }
  3. 将该函数放在(document).ready()

最新更新