gpt4 book ai didi

javascript - 为什么 not($(this)) 之后的回调函数会重复多次?

转载 作者:行者123 更新时间:2023-11-30 08:50:07 25 4
gpt4 key购买 nike

我做了一个回调函数,它会在之后启动

$('.menuIco').not($(this)).fadeOut()

但是我有 9 个回调而不是 1 个回调(可能是因为 not($(this)) 导致 10-1=9 个元素)。

为什么?以及如何预防?

我正在使用变量的解决方法,但在我看来它不太专业。

var loaded = false;

$('.menuIco').not($(this)).fadeOut(function() { // hide all icons but one
if(loaded==false) {
loaded = true;

$('.menuIco p').addClass("icoCaptionOff");
$(menuIco).animate({top: "20", left: "-100"}, "fast", function() {
LoadContent($(menuIco).attr('id'));

});
}
});

最佳答案

你可以使用.promise()在所有元素的动画完成后执行回调

The .promise() method returns a dynamically generated Promise that is resolved once all actions of a certain type bound to the collection, queued or not, have ended.

By default, type is "fx", which means the returned Promise is resolved when all animations of the selected elements have completed.

$('.menuIco').not(this).fadeOut().promise().done(function () {
$('.menuIco p').addClass("icoCaptionOff");
$(menuIco).animate({
top: "20",
left: "-100"
}, "fast", function () {
LoadContent($(menuIco).attr('id'));

});
});

关于javascript - 为什么 not($(this)) 之后的回调函数会重复多次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18634681/

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