2009-09-26 5 views
2

나는 현재 jQuery.event 청취자가 있습니다.이 청취자는 일단 숨겨진 요소 (롤오버, 기본적으로)를 표시합니다.이벤트, 재검사 및 트리거 후 x 밀리 초 대기

그러나 jQuery가 몇 밀리 초 동안 기다릴 수있는 방법이 있습니까? 마우스가 여전히 요소 위에 있는지 확인한 다음 .show() 이벤트가 발생하면 다시 트리거 할 수 있습니까?

내가 현재 가지고 :

$("#who-mousearea").mouseenter(function(){ 
    $("a#who-edit").fadeIn(); 
}).mouseleave(function(){ 
    $("a#who-edit").fadeOut(); 
}); 

나는 그러나이 그냥 fadeIn에 걸리는 시간() 요소를 지연 것, 내가의 setTimeout을 사용할 수 이해합니다.

누구나이를 달성하는 방법에 대한 아이디어가 있습니까?

답변

5
var timeout = null; 

$("#who-mousearea").mouseenter(function(){ 
    timeout = setTimeout(function() { 
    timeout = null; 
    $("a#who-edit").fadeIn(); 
    }, 50); 
}).mouseleave(function(){ 
    if (timeout == null) { 
    $("a#who-edit").fadeOut(); 
    } 
    else { 
    clearTimeout(timeout); 
    } 
}); 
+0

Perfect, thanks John. – jakeisonline

0

마우스를 뺀 시간 제한을 지우십시오.