2012-06-29 68 views
1

我有一個頁面,我基本上想要一個元素'閃爍'一段時間,然後回到其初始狀態。使用jQuery UI,你可以動畫addClass()和removeClass()方法:jQuery UI 1.8和addClass/removeClass動畫在超時時不工作

$this.addClass('success', 400); 

然後

setTimeout(function(){     

    $this.removeClass('success', 400); 

}, 1000); 

所在班級 '成功' 的

background-color: green 

的首部作品。但setTimeout中的removeClass()只是在不做任何動畫的情況下移除該類。這可能是由什麼引起的?

+1

你能告訴你如何分配'$ this'嗎?我已經測試過,看起來很好。我的代碼與你的代碼稍有不同。小提琴[這裏](http://jsfiddle.net/schawaska/BvupD/) – MilkyWayJoe

+2

[就像上面那樣,我也無法複製這個。](http://jsfiddle.net/5dN6z/) – Ohgodwhy

+0

mmmh .... ok那麼它就會在某處發生CSS衝突。不管怎麼說,還是要謝謝你。 –

回答

4

也許你會用.delay()這種有用的方法?

$('button#test_add').click(function() { 
    $('#content').addClass('success', 400); 
}); 

$('button#test_remove').click(function() { 
    $('#content').delay(1000).removeClass('success', 400); 
}); 

這裏是一個JSFiddle玩。

+1

這是比直接觸摸'setTimeout'更好的方法 – MilkyWayJoe

+0

我很欣賞使用延遲而不是setTimeout的建議! –