我是 JavaScript 和 jQuery 的初学者,我想知道如何继续处理这部分代码,
我有一个带有回调的函数,例如:
myFunc(elem, callback) {
$(elem).fadeIn(function(){ callback(); });
}
我想对数组中的元素运行此函数:
elems = ['#elem1', '#elem2_3', '#elem4_5', '#elem3', '#elem_five'];
但是,我想通过回调对数组的每个元素执行这个函数。 例如。一旦 #elem1 淡入淡出,它必须淡入第二个元素..etc
现在我这样做:
我尝试做一个for循环,但它们是同时执行的。
for (i = 0; i < elems.length; i++) {
myFunc(elem[i], function(){
if (elem[i+1]) {
myFunc(elem[i+1]);
}
});
}
那么你将如何进行?
最佳答案
这样做,您的问题的递归解决方案,
function myFunc(elems, cnt)
{
if(cnt > (elems.length - 1)) { return; }
$(elems[cnt]).fadeIn("slow", function(){ myFunc(elems , ++cnt); });
}
myFunc(['#elem1', '#elem2_3', '#elem4_5', '#elem3', '#elem_five'], 0);
DEMO
关于javascript - 根据数组元素调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26233905/