gpt4 book ai didi

javascript - JQuery show() - 暂停函数直到执行回调

转载 作者:行者123 更新时间:2023-12-03 12:40:40 25 4
gpt4 key购买 nike

我希望我的 javascript/jquery 应用程序停止执行所有动画,并且仅在显示加载 .gif 时继续执行。

我确实设法在其他动画进行时显示加载 .gif,但我确实需要它在其他动画播放之前就已经显示。

所以我构造了一个等待回调执行的方法,但它没有按预期工作。

var Shown = false;
function ShowLoadingGif() {
$("#loading").show("fast", function() {
Shown = true;
});
while(!Shown) {
//wait for callback to be executed
}
Shown = false;
}

参见this JFiddle example 。我不仅想知道如何正确地解决这个问题;而且想知道如何解决这个问题。我也非常感谢任何有关它为何不能按我预期工作的意见。

提前致谢!

最佳答案

您可以使用类似的方法,使用 jQuery 延迟对象(请参阅 Docs)

var Shown = false;
function ShowLoadingGif() {
var $promise = $.Deferred();
$("#loading").show("fast", function() {
$promise.resolve("Im done");
});
$promise.done(function(data) {
// data === "Im done"
});
}

我已经更新了您的 Fiddle,现在,当事情完成时,它会按照您的预期发出警报

Fiddle (http://jsfiddle.net/k5Wan/3/)

我还更新了代码质量

var $promise = $.Deferred();

$promise.done(function() {
alert("Done...");
});

$(function() {
$("button").on("click", function() {
$("#loading").show("slow", function() {
$promise.resolve();
});
});
});

关于javascript - JQuery show() - 暂停函数直到执行回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23542142/

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