2010-12-28 7 views
55
$('.transparent').removeClass('transparent').delay(2000).addClass('not_transparent').delay(4000) 

div가 반투명 한 다음 투명하지 않게 전환하려고합니다. 그러나 jQuery .delay(); 방법은 여기에서 작동하지 않는 것 같습니다. 나는 시도했다. fadeIn(); 대신 지연과 함께 작동하지만 변화하는 클래스는 작동하지 않습니다.jQuery 지연이 작동하지 않습니다.

답변

118

.delay()은 애니메이션과 마찬가지로 queue의 항목에 사용됩니다. 간단한 addClass은 대기열에 없습니다.

setTimeout을 사용할 수 있습니다. 나는 setTimeout이 더 좋을 것이라고 생각하지만

var trans = $('.transparent').removeClass('transparent'); 
setTimeout(function() { 
    trans.addClass('not_transparent'); 
}, 2000); 

는 대안으로, .queue()를 사용하여 큐에 비 큐에 항목을 추가 할 수 있습니다.

delay(); 
function delay(){ 
    $('.pgtitle').delay(5000).fadeIn(0).addClass('animated bounceInDown'); 
} 
+3

좋습니다. 이해해. setTimeout is : – s84

+0

왜 setTimeout이 더 좋다고 생각하십니까? – s84

+3

@Sam : 이것은 매우 간단하며 기본 구현입니다. 나는 어떤 종류의 오버 헤드가'queue()'와 관련이 있는지 알지 못하지만,'setTimeout'보다 꽤 많은 것을 확신합니다. – user113716

0

.delay() 그래서 그냥 사용 나는 두 센트를 더할 것이다. 당신은 지연 후이를 실행하기 위해 대기열에 함수를 전달할 수

$('.transparent').fadeIn().delay(500).queue(function(){ 
 
    $('.transparent').addClass('yourclass'); 
 
});

-

당신은 같은 것을 사용할 수 있습니다. 이와 비슷한 예제를 위해 나 자신을 사용 해왔다.

3

나는이 오래된 질문 알지만, 그래서 구글에서 여기 오는 트래픽이 많이 아직도있다 : 함수의 외부 .addClass() 태그가 작동하지 않습니다

$('.transparent').removeClass('transparent').delay(2000).queue(function(nxt) { 
     $(this).addClass('not_transparent'); 
     nxt(); 
}); 
관련 문제