2014-11-18 2 views
0

을 발사에서 나는 다음과 같은 코드를 가지고 :() 사업부 사용 slideup을 숨 깁니다방지 지연()

$("#parahide").on("click", function() { 
    $(this).dequeue().slideUp('400'); 
}).delay(6000).slideUp('400'); 

여기에 모두 클릭()과 지연(). 사용자가 이미 6 초 안에 파라를 클릭 한 경우, 지연()이 발사 된 후 두 번째 슬라이드 업()을 방지하려면 어떻게해야합니까?

답변

0

.stop(true)을 사용하면 지연 및 슬라이드 업을 포함하여 보류중인 애니메이션 작업을 지우는 애니메이션 대기열을 지울 수 있습니다.

$("#parahide").on("click", function() { 
    $(this).stop(true).slideUp('400'); 
}).delay(6000).slideUp('400'); 

나는이 문제가 왜 아주 확실하지 않다 전혀 때문에이 보이지 아무것도하지 않는 아마 숨겨진 뭔가 .slideUp()를 호출.

+0

그렇지만 slideup이 click 이벤트에서 이미 호출 된 경우 추가 호출이 필요한 이유는 무엇입니까? 내 논리가 맞습니까? – CuriousDev

+0

@ user1089173 - 추가 전화가 필요한 이유는 무엇입니까? '.delay()'가 실행되는 것을 멈추는 방법을 물었고'.stop (true)'는 애니메이션 대기열에서 그것을 지우는 방법입니다. 애니메이션 대기열에서 제거하는 항목을 선택하고 제거하는 것은 쉽지 않습니다. 따라서 대기열을 지우고 원하는 작업을 다시 추가하는 것이 좋습니다. – jfriend00

+0

아니요. 질문에 대답했습니다. "왜 숨겨져있는 .slideUp()을 호출해도 아무 것도 볼 수 없기 때문에 이것이 왜 문제가되는지 잘 모르겠습니다." – CuriousDev