我们如何从像这样的数组中创建一个函数
$.loader({
js: [
['1.js','3.js','2.js'],
['4.js'],
['5.js']
]
});
做某事
$.when(
$.getScript("1.js"),
$.getScript('3.js'),
$.getScript('2.js'))
.then(
function(){
$.getScript('4.js').then(function(){
$.getScript('5.js');
})
});
这是我目前正在做的事情
loader: function(arg){
var js = arg;
var phase = 0;
for (var i = 0; i < o.length; i++) {
console.log(o[i]);
$.each(o[i], function(key,src) {
//append javascript
});
};
}
问题是我不知道从哪里开始。 这就是我的想法
- 我将它们分成几个阶段。
- 设置第 0 阶段,它将运行第一个阵列,但我该怎么做?
$.getScript(src)
用于每个 src 剂量堆栈。或链。也许把它放在一个 var sting 中?像string + = $.getScript(src).
所以它会像$.getScript("1.js").getScript("3.js").getScript("2 .js")
直到出现字符串数组,在本例中为 3。然后做一些像在字符串前面附加$.when(
然后在字符串后面我们放.then(function(){
直到它完成然后以某种方式关闭字符串。 - 好吧,我不知道(这是 stackoverflow 上的帖子)
最佳答案
function lScripts(startAt){
for (var i = startAt; i < js.length; i++) {
if (js[i].constructor == Array){
for (var j = 0; j < js[i].length; j++) {
if(j==js[i].length){
$.getScript('js[i][j]',function(){
lScripts(startAt+1);
});
}else{
$.getScript('js[i][j]');
}
}
}else{
$.getScript('js[i]',function(){
lScripts(startAt+1);
});
}
}
}
lScripts(0);
关于javascript - 将数组转换为函数,使用 jquery 制作一个 javascript 加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7029386/