2011-01-27 3 views
2

그것은이 같은 작은 선물을 간다 : jquery에서 부모 함수를 중지 할 때 콜백이 중지되지 않습니까?

$("example").hover(function(){ 
     ("example").stop().show(/*More Code*/, callback()); 
    }, function(){ 
     ("example").stop().hide(/*More Code*/, callback()); 
    } 
) 

그래서 첫 번째 애니메이션은 모든 애니메이션을 중지 할 완료하고 콜백을 스킵하기 전에 마우스가 영역을 떠날 것 인 경우에. stop()을 사용하고 여전히 콜백 함수를 실행하는 방법이 있습니까?

답변

1

setTimeout은 콜백 대신에 애니메이션의 끝 부분에서 실행됩니다.

$("example").hover(function(){ 
     $("example").stop().show(1000); 
     setTimeout(function() { /* do something */ }, 1000); 
    }, function(){ 
     $("example").stop().hide(1000); 
     setTimeout(function() { /* do something */ }, 1000); 
    } 
); 

또 다른 옵션은 대신 .stop().stop(true,true)을 사용하는 것입니다.

큐를 지우고 마지막까지 애니메이션을 보내고 콜백을 시작합니다.

$("example").hover(function(){ 
     $("example").stop(true,true).show(1000); 
    }, function(){ 
     $("example").stop(true,true).hide(1000); 
    } 
); 
관련 문제