gpt4 book ai didi

javascript - 如何在另一个函数的范围内杀死js函数

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

我为我的表单提交制作了please wait gif 动画,因为注册需要更多​​时间。

现在一切正常,但我的 gif 动画即使在成功消息后仍然继续运行。因此我的动画功能仍在运行。我怎样才能杀死那个功能?

这就是我现在所做的:

function loadSubmit(){
ProgressImage = document.getElementById('progress_image');
document.getElementById("progress").style.visibility = "visible";
setTimeout("ProgressImage.src = ProgressImage.src",100);
return true;
}

我在我的 ajax 函数之前调用它:

 loadSubmit();
$.ajax({
url: "/register_me/",
type: "POST",
...
}).done(function(){
// can i somehow kill loadSubmit() function in this scope?
});

能够做到这一点真是太好了..

非常感谢

最佳答案

setTimeout 返回一个整数值,然后可以使用该整数值使用函数 clearTimeout 清除该超时

function loadSubmit(){
ProgressImage = document.getElementById('progress_image');
document.getElementById("progress").style.visibility = "visible";
// what exactly you want you achieve through this timeout
return setTimeout("ProgressImage.src = ProgressImage.src",100);

}

var intervalID = loadSubmit();
$.ajax({
url: "/register_me/",
type: "POST",
...
}).done(function(){
document.getElementById("progress").style.display = "none"; //EDIT
clearTimeout(intervalID)
});

阅读 MDN 上关于 setTimout 的文档 https://developer.mozilla.org/en-US/docs/DOM/window.setTimeout

编辑:我误解了这个问题。你需要隐藏ProgressImage来隐藏gif,你仍然需要清除超时。

关于javascript - 如何在另一个函数的范围内杀死js函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15514936/

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