Ajax 호출의 경우 특정 순서로 호출해야하는 여러 요소에 대한 전환이 있습니다. Deferred jQuery에 대해 읽었을 때 이것이 내가 찾고있는 것이라고 생각했지만 작동시키지 못했습니다. http://jsfiddle.net/pe5Bb/1/jquery 지연 및 css3 전환
것 같아요 문제는 CSS3 전환됩니다
은 내가 archieve 싶은 아이디어를 제공하는 간단한 jsfiddle했다. 모든 기능은 처음부터 실행됩니다. 그러나 전이 콜백에 console.log를 배치하면 작동하는 것처럼 보이지만 함수는 여전히 실행됩니다.function box2() {
var deferred = $.Deferred();
if ($('#box2').hasClass('active')) {
$('#box2').css({opacity:0}).bind(transitionend, function(){
console.log("css3 done");
deferred.resolve();
$('#box2').unbind(transitionend);
});
} else {
deferred.resolve();
}
return deferred.promise();
은}
내가 달성하고자하는 것은 내가 (새로운 콘텐츠로의 전환에 대한 상태를 가진) 여러 기능을 만들 수 있으며, 나는 그들이 호출해야 어떤 순서로 말할 수 있다는 것입니다. 이 예제에서는 클래스 추가/삭제를 통해 때때로 호출되는 css3 전환 작업을 수행합니다. 이 시나리오에서 지연된 사용이 올바르지 않다면 그 정보를 듣고 싶습니다.
답변 해 주셔서 감사합니다. 이 작동합니다. http://api.jquery.com/deferred.then/에서 deferred.then (doneFilter [, failFilter] [, progressFilter])라고 말하면서 .then()에 대해 아직도 혼란 스럽습니다. done()과 똑같은가요? –
나는 그것을 실제로 보지 않았다. 그렇게하면 훨씬 쉽지만 잘못 부른 것입니다. 내 업데이트 답변을 참조하십시오. Btw, 내 대답에 만족한다면, 나는 upvote 주셔서 감사하겠습니다. :) –
업데이트 된 답변 주셔서 감사합니다! 나는 그 때를 더 좋아할 것 같기 때문에 그 때를 선호한다. 따라서 오류가 발생하면 모든 것이 계속 진행되어 '안전한'느낌을줍니다. Upvoted your answer :) –