2009-12-13 6 views
3

사용자가 대상에서 멀리 이동할 때까지 mouseover 동작을 반복하는 방법을 찾고 있습니다. 마우스 오버는 함수를 한 번 호출합니다. 함수를 계속 수행 할 방법을 찾고 있습니다.연속 마우스 오버

건배, Gazler.

답변

6

당신은 setInterval()를 사용해야합니다 :

var to; 
var doStuff = function() { 
    console.log('doing stuff...'); 
}; 

$('a').hover(function(e) { 
    to = window.setInterval(doStuff, 1); 
},function(e) { 
    window.clearInterval(to); 
}) 
+0

완벽한, 환호. – Gazler

+0

모든 앵커 태그에 하나의 타이머 변수를 사용합니다. 대부분의 경우 작동하지만 예상치 못한 앵커 태그가있을 때 예상대로 작동하지 않을 수 있습니다. 이벤트 버블 링으로 인해 두 개 (또는 그 이상)의 간격 중첩 된 각 요소에 대해 당신은 오직 하나만 지울 것입니다 –

+1

@ dionadar : 중첩 된 앵커는 불법입니다 : http://www.w3.org/TR/html401/struct/links.html#h-12.2.2 – David

0
//continuous 


var timer; 

var doStuff=function(quit){ 

    console.log('doing stuff'); 

    if (quit!==true){ 

    timer=setTimeout(doStuff, 100); 

    } 

    else{ 

    clearTimeout(timer); 

    } 

}; 

$('div#continuous').bind('mouseenter', doStuff).bind('mouseleave', function(){doStuff(true);});