2016-05-05 6 views
1

私は、マウスが画面の左側にある場合は左側に、右側にある場合は要素を移動させようとしています。マウスがゾーンに入ったときに要素を移動させ、終了時にその機能を停止させる機能を有効にしたい。setIntervalを停止することはできません

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

答えて

6

あなたは明確にのみ、最後の一つを始めたので、あなたはすべてのmousemoveイベントで新しいintervalを作成しています。 intervalを既に起動していて、それがクリアされていない場合にのみ新しいものを開始する必要があります。

+0

ああ、私は 'interval'オブジェクトが実際にそれを更新していると思っていました。今はうまくいきます、ありがとう! – Skaddict

関連する問題