Javascript 无法停止设置间隔
当鼠标在屏幕左侧时,我试图让一个元素向左移动,当鼠标在另一侧时,我试图让它向右移动。我想激活一个函数,当鼠标进入一个区域时使元素移动,当它退出时停止该函数 我一直在尝试使用setInterval和clearInterval,但无法使其工作。setInterval工作,函数启动,但我不能让它停止 以下是在init函数中声明的代码:Javascript 无法停止设置间隔,javascript,jquery,Javascript,Jquery,当鼠标在屏幕左侧时,我试图让一个元素向左移动,当鼠标在另一侧时,我试图让它向右移动。我想激活一个函数,当鼠标进入一个区域时使元素移动,当它退出时停止该函数 我一直在尝试使用setInterval和clearInterval,但无法使其工作。setInterval工作,函数启动,但我不能让它停止 以下是在init函数中声明的代码: var intervalLeft; var intervalRight; var currentMousePos = { x: -1, y: -1 }
var intervalLeft;
var intervalRight;
var currentMousePos = { x: -1, y: -1 };
$(document).mousemove(function(event) {
currentMousePos.x = event.pageX;
if (currentMousePos.x < 200) {
console.log('LEFT');
intervalLeft = setInterval(goleft, 500);
} else if (currentMousePos.x > $width-200) {
console.log('RIGHT');
intervalRight = setInterval(goright, 500);
} else {
console.log('STOP');
clearInterval(intervalRight);
clearInterval(intervalLeft);
}
});
您正在为每个mousemove事件创建一个新的间隔,以便只清除最后启动的间隔。你应该检查你是否已经开始了一个时间间隔,并且只有在你没有/它被清除的情况下才开始一个新的时间间隔你正在为每个mousemove事件创建一个新的时间间隔,所以你只清除最后一个开始的时间间隔。你应该检查你是否已经开始了一个间隔,并且只有在你没有/它被清除的情况下才开始一个新的间隔哦,我以为间隔对象只是在更新自己,它们实际上在成倍增加。现在很好用,非常感谢!哦,我以为间隔对象只是在更新自己,它们实际上在成倍增长。现在很好用,非常感谢!