按顺序从数组中调用jquery数组/调用函数

时间:2010-02-05 14:29:30

标签: jquery arrays

我正在开发一个项目,我有一堆函数,我想在点击按钮时按特定顺序逐个调用。一旦执行了一个功能,我不想再使用了,我想转到下一个功能。

另一个S.O用户建议我需要使用数组,但我仍然在学习jQuery并且不确定如何做到这一点,任何人都能让我开始朝着正确的方向前进吗?

非常感谢提前。

3 个答案:

答案 0 :(得分:3)

假设你有这样的功能:

function foo() { doSomeStuff; }
function bar() { doSomeOhterStuff; }

或者,一种替代但却相同的语法:

var foo = function() { doSomeStuff; }
var bar = function() { doSomeOhterStuff; }

然后你可以用这些函数名创建一个数组并迭代它们:

var functions = ['foo', 'bar'];

for(var i = 0; i <= functions.length; i++) {
    window[functions[i]]();
}

或者您可以将函数直接传递给数组:

var functions = [foo, bar];

for(var i = 0; i <= functions.length; i++) {
    func();
}

将它们插入数组的顺序决定了它们的执行顺序,每个函数只执行一次。希望这会有所帮助。

答案 1 :(得分:2)

示例代码:

function fnc1(){/* some code in here */};
function fnc2(){/* some code in here */};
function fnc3(){/* some code in here */};

var fncs = [ fnc1, fnc2, fnc3 ];
$("buttonId").click(function(){
    var currentFunction = (fncs.shift()); // removes first element from array
    if(currentFunction){
        currentFunction(); 
    }else{
        alert('No more functions available');
    }
});

答案 2 :(得分:0)

var inarr = [func1,func2,func3];

for (afunc in inarr) {
   afunc();
}