从另一个函数中停止setInterval()

时间:2014-03-11 03:49:46

标签: jquery

我的初始点击setInterval工作得很好但是一旦我点击另一个"容器"我得到了奇怪的行为。我觉得每次点击事件开始时的clearInterval()都可以完成这项任务,但事实并非如此。我错过了什么?

$('.container #audio1 div:first').on( "click", function() {
 setInterval(function() {
    $("#time").html(Math.round(sound.currentTime)+ ":00 / 31:00");
 }, 250);
})

$('.container #audio2 div:first').on( "click", function() {
 setInterval(function() {
    $("#time").html(Math.round(sound.currentTime)+ ":00 / 31:00");
 }, 250);
})

1 个答案:

答案 0 :(得分:5)

存储对间隔的引用并使用clearInterval()

将其清除
var interval;
$('.container #audio1 div:first').on("click", function () {
    clearInterval(interval);
    interval = setInterval(function () {
        $("#time").html(Math.round(sound.currentTime) + ":00 / 31:00");
    }, 250);
})

$('.container #audio2 div:first').on("click", function () {
    clearInterval(interval);
    interval = setInterval(function () {
        $("#time").html(Math.round(sound.currentTime) + ":00 / 31:00");
    }, 250);
})

注意:如果您点击两次相同的按钮,这将清除上一个间隔,我认为这是您可能需要的