setInterval无法停止

时间:2016-05-05 22:28:03

标签: javascript jquery

我试图让左边的元素向左移动,如果在屏幕的左侧,则在另一边。我想激活一个函数,当鼠标进入区域时使元素移动,并在退出时停止该函数。

我一直在尝试使用setIntervalclearInterval,但无法使其发挥作用。 setInterval有效,功能开始,但我无法停止。

这是在init函数中声明的代码:

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);
        }
    });

1 个答案:

答案 0 :(得分:6)

您在每个interval事件中创建一个新的mousemove,因此您只清除上一个启动的事件。你应该检查一下你是否已经开始interval并且只有在你没有清除

时才开始新的java.util.Properties