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

 房东的猫 发布于 2023-01-18 19:06

我的初始点击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);
})

Arun P Johny.. 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);
})

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

1 个回答
  • 存储对间隔的引用并使用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);
    })
    

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

    2023-01-18 19:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有