2011-03-11 2 views
2

그래서 나는 현재 나는이 있습니다jQuery : 클릭하지 않으면 페이드가 지연됩니까?

$('#message_notice').click(function(){ 
    $(this).fadeOut('slow'); 
}); 

$('#message_notice').delay(8000).fadeOut('slow'); 

내가 궁극적으로 할 노력하고있어하는 메시지를 클릭하면, 다음 가서 그것을 페이드 아웃입니다. 그렇지 않으면 X 초 후에 자동으로 페이드 아웃합니다.

둘 중 하나를 수행 할 수 있지만 둘 다 (예와 같이) 누른 경우 클릭이 작동하지 않습니다 (지연된 페이드 만).

jQuery 1.4.4를 사용하고 있습니다.

답변

5

클릭 핸들러에서 .stop(true)을 호출하여 대기열에 넣은 delay()을 취소해야합니다.

새로운 코드는

$('#message_notice').delay(8000).fadeOut('slow'); 

를 실행할 때 누군가가 클릭 할 경우

$('#message_notice').fadeOut('slow'); 

이 추가됩니다 할 수있는 애니메이션 큐를 만드는 때문이다

$('#message_notice').click(function(){ 
    $(this).stop(true).fadeOut('slow'); 
}); 

$('#message_notice').delay(8000).fadeOut('slow'); 
2

처럼 보일 것입니다.

해결 방법은 글을 끝내기보다 빨리 게시 한 SLaks의 답변을 참조하십시오 ...

관련 문제