Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法停止设置间隔_Javascript_Jquery - Fatal编程技术网

Javascript 无法停止设置间隔

Javascript 无法停止设置间隔,javascript,jquery,Javascript,Jquery,当鼠标在屏幕左侧时,我试图让一个元素向左移动,当鼠标在另一侧时,我试图让它向右移动。我想激活一个函数,当鼠标进入一个区域时使元素移动,当它退出时停止该函数 我一直在尝试使用setInterval和clearInterval,但无法使其工作。setInterval工作,函数启动,但我不能让它停止 以下是在init函数中声明的代码: var intervalLeft; var intervalRight; var currentMousePos = { x: -1, y: -1 }

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

我一直在尝试使用setInterval和clearInterval,但无法使其工作。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);
        }
    });
您正在为每个mousemove事件创建一个新的间隔,以便只清除最后启动的间隔。你应该检查你是否已经开始了一个时间间隔,并且只有在你没有/它被清除的情况下才开始一个新的时间间隔

你正在为每个mousemove事件创建一个新的时间间隔,所以你只清除最后一个开始的时间间隔。你应该检查你是否已经开始了一个间隔,并且只有在你没有/它被清除的情况下才开始一个新的间隔

哦,我以为间隔对象只是在更新自己,它们实际上在成倍增加。现在很好用,非常感谢!哦,我以为间隔对象只是在更新自己,它们实际上在成倍增长。现在很好用,非常感谢!