gpt4 book ai didi

Javascript,切换 setInterval

转载 作者:行者123 更新时间:2023-12-01 07:26:23 28 4
gpt4 key购买 nike

我正在尝试制作一个小脚本,其中屏幕将每 100 毫秒随机更改一次背景颜色,您可以通过按一个按钮来打开和关闭它。我可以让它开始,但我不能让它停止。

这是切换的主要代码:

var on = -1;

function change() {
on = on*-1;
if (on == true) {
var light = window.setInterval(disco,100);
}
else {
window.clearInterval(light);
}
}
disco是改变背景颜色的函数。

我已经尝试了许多不同的变体,但我认为这是我得到的最接近的。尽管 on,单击按钮现在只设置另一个间隔。变量在 1 和 -1 之间正确切换。我没有正确使用 clearInterval 吗?

完整的 JSFiddle 在这里: http://jsfiddle.net/VZdk9/

我正在尝试练习 JavaScript,所以请不要使用 jQuery :)

最佳答案

您的变量 light 存在范围问题因为它是在 change() 中定义的功能。为了跟踪间隔 ID,您需要将其设为全局变量。

var light;

function change() {
if (!light) {
light = window.setInterval(disco,100);
} else {
window.clearInterval(light);
light = null;
}
}

我还删除了您的变量 on因为它的可能值 -11都是 truthy .你真的只需要使用一个变量,因为 light将被重置为 null如果间隔已被清除。如果此变量由另一个函数控制,请随时将其更改回来。

关于Javascript,切换 setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21638730/

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