动态将变量列表作为参数包含到Jquery函数中

时间:2018-08-17 12:27:32

标签: javascript jquery jquery-deferred

如果事先不知道变量的名称或数量,如何将变量列表动态地注入到函数中。特别是:

我正在尝试替换此“硬编码”版本:

$.when(img1Loaded,img2Loaded,img3Loaded).done(function () { ... etc

具有这样的内容:

$.when(MyDynamicList).done(function () { ... etc

在更广泛的上下文中,可以使用脚本填充var MyDynamicList,并且该脚本包含一个函数的响应,该函数宣布每个图像的加载完成。也就是说,我需要引用一些声明如下的变量:

var img1Loaded = $.Deferred();

,然后在'img.onload'函数中将其引用为:img1Loaded.resolve();

我全部都可以处理单个图像,但不能处理2个或更多图像...

比喻:

var it=['#d1,#d2'];

$(it[0]).on( "click", function() {
    alert(this.id);
});

换句话说,对于我的情况,如何创建等效的“ it”。这是完全错误的:var MyDynamicList= img1Loaded,.... imgNLoaded;

我在此上画了一个空白。

1 个答案:

答案 0 :(得分:1)

也许您可以创建自己的“ when”函数来使用promise处理数组:

React

myWhen将在dynamicList中的所有“ thenables”解析时完成。

您可以在此处阅读有关诺言的更多信息: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

希望这会有所帮助