我正在开发一个JavaScript/WebRTC对讲机应用程序,需要按住一个按钮来发送音频。它工作正常,直到我按住鼠标左键单击鼠标右键,导致setInterval
函数继续工作,clearInterval
无法通过其ID停止它。它只是永远继续下去。根据我所读到的一切,clearInterval
应该停止它,尤其是在全局设置间隔的情况下。
var intervalId;
$("#transmitbutton").on("mousedown touchstart", function () {
intervalId = setInterval(function () {
console.log("PTT pressed");
}, 1000);
});
$("#transmitcontainer").on("mouseup touchend mouseleave", function () {
clearInterval(intervalId);
});
我试过开始和停止按钮,结果是一样的。clearInterval
不工作。
var intervalId;
$("#transmitstart").on("click", function () {
intervalId = setInterval(function () {
console.log("PTT pressed");
}, 1000);
});
$("#transmitstop").on("click", function () {
clearInterval(intervalId);
});
1条答案
按热度按时间olhwl3o21#
如果您碰巧调用了多次创建它的函数,那么您将拥有一个不可取消的间隔,因为您将覆盖间隔ID。因此,您要么需要取消它,要么不创建新的间隔。