Javascript 间隔不断变化?
因此,在我的代码中,如果某个元素没有执行某些操作[Javascript 间隔不断变化?,javascript,jquery,setinterval,Javascript,Jquery,Setinterval,因此,在我的代码中,如果某个元素没有执行某些操作[播放],那么我将开始播放它。如果正在播放,请停止播放。我设法让它开始演奏,但它从未停止过 var playing = false; var current = 30; $('#countDownContainer').click(function() { if (!playing) { playing = false; setInterval(function() {
播放
],那么我将开始播放它。如果正在播放,请停止播放。我设法让它开始演奏,但它从未停止过
var playing = false;
var current = 30;
$('#countDownContainer').click(function() {
if (!playing) {
playing = false;
setInterval(function() {
$('#workSpace label').get(0).innerHTML = current;
current -= 1;
},1000);
} else {
playing = true;
}
});
理论上,当用户单击#countdowncainer
时,播放
将设置为false并运行设置间隔
代码,如果它已经在播放,播放
将设置为true,并且当通过循环时它将不会运行。但事实上,它一直在从30
变为29
再变回30
。当我再次单击按钮时,它从未停止。请帮忙,谢谢
var clear= setInterval(function() {
$('#workSpace label').get(0).innerHTML = current;
current -= 1;
},1000);
clearinterval(clear);// to stop interval where you want
//clearInterval(id_of_setinterval)
参考文献
参考首先,我认为您在玩作业时混淆了var
。
您还应该分配从setInterval
返回的ID,以便以后可以使用clearInterval
中止该间隔循环:
//initialize var at the start of the script
var intervalID;
// in the onclick event
if (!playing) {
playing = true; // should be true here
intervalID = setInterval(function() {
$('#workSpace label').get(0).innerHTML = current;
current -= 1;
},1000);
} else {
playing = false; // should be false here
clearInterval(intervalID);
}
请看首先,我认为您在播放
作业时混淆了var。
您还应该分配从setInterval
返回的ID,以便以后可以使用clearInterval
中止该间隔循环:
//initialize var at the start of the script
var intervalID;
// in the onclick event
if (!playing) {
playing = true; // should be true here
intervalID = setInterval(function() {
$('#workSpace label').get(0).innerHTML = current;
current -= 1;
},1000);
} else {
playing = false; // should be false here
clearInterval(intervalID);
}
请参见,这被称为
因为请注意以下几点:
var playing = false; // playing is initialised to false
if (!playing) { // if not playing
playing = false; // set playing to false
var playing = false;
var current = 30;
$('#countDownContainer').click(function() {
if (playing) {
playing = false;
} else {
playing = true;
setInterval(function() {
$('#workSpace label').get(0).innerHTML = current;
current -= 1;
},1000);
}
});
因此,播放
永远不会成为真实的
您可以通过执行以下操作来解决此问题:
var playing = false; // playing is initialised to false
if (!playing) { // if not playing
playing = false; // set playing to false
var playing = false;
var current = 30;
$('#countDownContainer').click(function() {
if (playing) {
playing = false;
} else {
playing = true;
setInterval(function() {
$('#workSpace label').get(0).innerHTML = current;
current -= 1;
},1000);
}
});
或者说:
如果不玩
,我们就让它玩:playing=true代码>
如果播放
,我们将其设置为不播放,因此:播放=假
附录
有关停止问题,请参阅@Riturajratan他的问题。这称为停止
因为请注意以下几点:
var playing = false; // playing is initialised to false
if (!playing) { // if not playing
playing = false; // set playing to false
var playing = false;
var current = 30;
$('#countDownContainer').click(function() {
if (playing) {
playing = false;
} else {
playing = true;
setInterval(function() {
$('#workSpace label').get(0).innerHTML = current;
current -= 1;
},1000);
}
});
因此,播放
永远不会成为真实的
您可以通过执行以下操作来解决此问题:
var playing = false; // playing is initialised to false
if (!playing) { // if not playing
playing = false; // set playing to false
var playing = false;
var current = 30;
$('#countDownContainer').click(function() {
if (playing) {
playing = false;
} else {
playing = true;
setInterval(function() {
$('#workSpace label').get(0).innerHTML = current;
current -= 1;
},1000);
}
});
或者说:
如果不玩
,我们就让它玩:playing=true代码>
如果播放
,我们将其设置为不播放,因此:播放=假
附录
关于停止问题,请参考@Riturajratan他的问题。还有一个问题:它从未停止。还有一个问题:它从未停止。