gpt4 book ai didi

javascript - 使用 javascript/jquery 检查函数是否已完成其任务

转载 作者:行者123 更新时间:2023-11-28 21:03:17 25 4
gpt4 key购买 nike

我正在尝试暂停一个函数,直到另一个函数完成其任务。有没有类似于 .ajaxComplete() 但用于完成函数的东西?

这段代码应该首先快速地打印出“test”,然后放慢速度(如果你愿意的话,可以减速)。随着循环中的数字变大,setTimeout 变长,因此,随着循环的继续,它会打印“slower”。基本上,我需要循环暂停,直到函数打印完毕。

编辑 - 我更新了我的代码。 “test”只打印一次,不会发生任何其他事情。

 <html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
</head>
<body>

<input type="button" value="Display alert box" onclick="docWrite()" />
<script>

var b = 0;

function docWrite() {
document.write("test");
timeMsg();
}

function timeMsg() {
b += 250;
if (b < 5000) { //check the limit
setTimeout("docWrite()", b - 250); //substract 250 (because we already added 250 before the first print
}
}
</script>
</body>
</html>

最佳答案

我认为让超时函数启动一个新的超时函数会更好这将解决您的问题并完全摆脱 for 循环。只需调用 timeMsg() 即可启动示例。

<script>

var b = 0;

function docWrite() {
$('body').append("test");
timeMsg();
}

function timeMsg() {
b += 250;
if (b < 5000) { //check the limit
setTimeout(docWrite, b - 250); //substract 250 (because we already added 250 before the first print
}
}

</script>

修改你自己的脚本我最终得到这个:

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
</head>
<body>

<input type="button" value="Display alert box" onclick="timeMsg()" />
<script>

var b = 0;

function docWrite() {
$("body").append("test");
timeMsg();
}

function timeMsg() {
b += 250;
if (b < 5000) { //check the limit
setTimeout(docWrite, b - 250); //substract 250 (because we already added 250 before the first print
}
}
</script>
</body>
</html>

关于javascript - 使用 javascript/jquery 检查函数是否已完成其任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10481851/

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