2011-07-26 3 views
0

나는 이것이 작동하지 않는 이유를 모르겠다.jQuery : slideUp.delay.slideDown - 버튼을 사용하여 취소 하시겠습니까?

function notificationBoxOutput(type, message) { 
    var noteBox = $('.notificationBox'); 

    noteBox.slideDown(function() { 
     noteBox.delay(2500).slideUp(); 
    }); 
} 

function notificationBoxCancel() { 
     console.log('successfully fired'); 
    $('.notificationBox').slideUp(); 
} 

그래서 좀 피드백을 제공 화면 상단에 상태 표시 줄의 종류가 할 수있는 기능 notificationBoxOutput를 호출합니다. bar slidesDown은 2.5 초를 유지 한 다음 위로 움직입니다.

막대 자체에는 클릭 할 때 notificationBoxCancel이 발생하는 아이콘이 포함되어 있습니다. 그래서 사용자는 술집을 2.5 초 더 빨리 닫을 수 있습니다. 그러나 더 가깝게 작동하지 않습니다. 콘솔에 "성공적으로 실행되었습니다."라는 메시지가 표시되지만 상자가 slideUp()되지 않습니다. hide()가 작동합니다! fadeOut() 및 slideUp()은 지원되지 않습니다.

왜 그런가?

답변

2

위로 이동 (위로)하기 전에 .stop() 애니메이션을 실행해야합니다. 다음과 같이 시도하십시오.

function notificationBoxCancel() { 
     console.log('successfully fired'); 
    $('.notificationBox').stop().slideUp(); 
} 
0

애니메이션이 대기하고 있기 때문입니다. 저자는 매우 빠른 상자를 열려고하지 않는

function notificationBoxCancel() { 
     console.log('successfully fired'); 
    $('.notificationBox').stop(true,true).slideUp(); 
} 
+0

매개 변수가 필요하지 않습니다 stopslideUp 전에 전화를보십시오. 다른 경우에는 코드가 적을수록 좋습니다. – avall

+0

내게 내장 애니메이션에 매개 변수가 제대로 중지되어야하는 것처럼 보였습니다 ... 내 실수. – MatTheCat

관련 문제