因此,在我的代码中,如果某个元素没有执行任何操作[playing],那么我将开始播放它。如果正在播放,请停止播放。我设法使其开始播放,但从未停止。

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;
        }
    });


从理论上讲,当用户单击#countDownContainer时,playing将设置为false并运行setInterval代码,如果已经在播放,则playing将设置为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)


参考clearInterval

10-06 00:57