控制jQuery加载函数的序列

时间:2010-06-28 15:23:22

标签: jquery

我刚开始使用原型中的jQuery,并且正在使用load函数在页面加载后执行一些脚本:

$(window).load(
function()
{
Stuff happens
}
);

但是,如何添加功能列表并控制它们执行的顺序?很难把我想加载的所有内容加载到'stuff happen'区域,所以我需要能够从数组中添加和删除内容并更改顺序。然后加载一个页面,执行该列表。

任何线索?

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情。

首先,设置你的功能:

var func1 = function(){ alert('this'); };
var func2 = function(){ alert('that'); };

接下来,创建一个数组以按所需顺序包含它们:

var funcs = [
  function(){alert('a');}, // anonymous, defined inline
  function(){alert('b');}, 
  func2,                   // or by reference
  func1,                   // you control the sequence
];
funcs.push( function(){alert('c');} ); // etc

最后,在你的load处理程序中:

$(window).load( function(){
  $.each( funcs, function(i,thisfunc){ // or native js for() if you prefer
    thisfunc();
  });​
});

load事件触发时,您将收到警告 a b此c 。这与jQuery如何通过其私有readylist数组处理这种事情并没有什么不同。