2012-05-15 3 views
0

mousedown 이벤트가 setTimeout을 사용하는 동안 반복적으로 호출 함수를 사용하고 싶습니다. 전혀 작동하지 않습니다. 누구든지 어떤 생각을 가지고 있니?Mousedown 및 setTimeout 함수를 사용하여 계속해서 함수를 트리거하는

$("#image_360").mousedown(function() { 
     mouseStillDown=true; 
     $(this).data('timeout', window.setTimeout(function() { 

      getDirection; 
     }, 2000)); 
    }, 
    function() 
    { 
     clearTimeout($(this).data('timeout')); 
     alert('mouse left'); 

    }); 

    function getDirection(e){ 
    var x = e.pageX; 
      //do stuff with condition e.pageX 
    } 

답변

3

당신은 반복적으로 호출하는 대신 setTimeoutclearTimeout의 타이머를 클리어 setInterval()clearInterval() 방법을 사용해야합니다.

setIntervalclearInterval

업데이트는이

$("#image_360").mousedown(function() { 
     mouseStillDown=true; 
     $(this).data('timeout', window.setInterval(function() { 

      getDirection; 
     }, 2000)); 
    }, 
    function() 
    { 
     clearInterval($(this).data('timeout')); 
     alert('mouse left'); 

    }); 

다음 getDirection 같은 코드는 모든 이초 호출됩니다.

관련 문제