2014-06-16 3 views
1

jQuery에서 여러 애니메이션이 있고 모두 완료되면 기능을 실행하고 싶습니다. 저는 약속의 객체를 만들어 "약속의 물통"에 넣습니다. 불행히도 제 애니메이션은 곧바로 해결됩니다. 코드에 뭔가 빠졌습니까? 5 초 전에 콘솔에 메시지가 출력됩니다.jQuery 애니메이션이 즉시 해결됩니다.

$.when.apply null, animBucket 
    .then() -> 
     console.log "all done" 

그렇지 않으면, $.when이 하나의 해결 값으로 배열을 치료한다 : 배열에 $.when를 사용하는 경우 커피 스크립트

animBucket = [] 
animBucket.push $('#a').animate({opacity: 0.5}, 5000).promise() 
animBucket.push $('#b').animate({opacity: 0.5}, 5000).promise() 
$.when animBucket 
    .then() -> 
    console.log 'All animation done' 

답변

2

에서

코드 당신은 .apply해야합니다. .apply을 호출하면 배열의 입력을 varargs로 변환합니다.

+0

관련없는 메모에서 전화로 답변을 게시하는 것은 상당히 고통 스럽습니다. –

+0

'$ .when()'과 같은 효과를 원한다면'$ .when.apply null, animBucket'을'$ .when.apply $, animBucket'으로 설정하면 안됩니까? 나는 당신이 여기에'null'을 전달하는 것으로 빠져 나간다는 것을 알지만, 그것은 구현이'this'를 사용하지 않기로 결정했기 때문입니다. – jfriend00

+0

$는 jQuery에서 네임 스페이스로 사용되므로 'null'이 더 간결합니다. 그러나 당신이 말한 것처럼 모두 –

관련 문제