我的初始点击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);
})
答案 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);
})
注意:如果您点击两次相同的按钮,这将清除上一个间隔,我认为这是您可能需要的