我正在使用mousedown和mouseup来触发setInterval函数,如下所示:
$("#rotateRight").mousedown(function() {
intervalIRight = setInterval(rotateRight, 0);
}).mouseup(function() {
clearInterval(intervalIRight);
});
然而,如果我在没有悬停在$("#rotateRight")
之上时释放鼠标(mouseup),那么效果很好,那么技术上没有'mouseup',因此间隔会永远持续下去并且永远无法清除。
我无法使用悬停,因为我希望偶数用户点击并按住鼠标时。但与此同时,我需要修复这个“鼠标错误”。有什么想法吗?
更新:新代码如下,但仍然没有清除间隔,因为mouseup发生在iframe上,而不是DOM。
var intervalIRight;
var intervalILeft;
$("#rotateRight").on('mousedown', function() {
intervalIRight = setInterval(rotateRight, 0);
});
$("#rotateLeft").on('mousedown', function() {
intervalILeft = setInterval(rotateLeft, 0);
});
$(document).on('mouseup', function() {
clearInterval(intervalIRight);
clearInterval(intervalILeft);
});
答案 0 :(得分:1)
通过将事件处理程序附加到文档来清除任何mouseup
上的间隔。
var intervalIRight;
$("#rotateRight").on('mousedown', function() {
intervalIRight = setInterval(rotateRight, 0);
});
$(document).on('mouseup', function() {
clearInterval(intervalIRight);
});