gpt4 book ai didi

jquery - 是否可以将单个参数传递给包含两个延迟对象的 $.when ?

转载 作者:行者123 更新时间:2023-12-01 00:46:22 25 4
gpt4 key购买 nike

我只想在加载 jQuery 对象中的所有图像时才执行一些代码。我可以按如下方式执行此操作:

var img1Load = $.Deferred();
$('#img1').load(img1Load.resolve);

var img2Load = $.Deferred();
$('#img2').load(img2Load.resolve);

$.when(img1Load, img2Load).done(function(){
console.log('both imgs loaded');
});

这没问题,但我不想为每个图像定义单独的延迟对象。如果有数百个,或者它们可能出现也可能不出现在给定页面上怎么办?我想一次性完成这一切,例如:

$.when(allImagesHaveLoaded).done(function(){
console.log('all imgs loaded');
});

我尝试创建一个 allImagesHaveLoaded 函数来迭代图像,为每个图像创建一个新的延迟对象。问题是,如果我返回一个这些数组用作when的参数,它就不起作用(因为它不是一个延迟对象,而是一个延迟对象数组)。

我也稍微摆弄了 $.Deferred.pipe (尝试创建一个链式延迟对象来传递给 when),但这并没有似乎有帮助。

有没有明智的方法来做到这一点?

最佳答案

有一种方法可以将延迟对象数组传递给 $.when:

$.when.apply($, myArray).done(...);

关于jquery - 是否可以将单个参数传递给包含两个延迟对象的 $.when ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6439324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com