在我的Rails應用程序中,當用戶點擊保存按鈕時發送Ajax請求,當它發送請求時,我可以返回一些jQuery。jQuery AddClass然後刪除類
我想要做的是添加一個類(保存),有一個延遲,然後刪除類。
所以,我說這一點:
$('.button').addClass('saving').delay(2000).removeClass('saving');
出於某種原因,它不工作。我究竟做錯了什麼?
在我的Rails應用程序中,當用戶點擊保存按鈕時發送Ajax請求,當它發送請求時,我可以返回一些jQuery。jQuery AddClass然後刪除類
我想要做的是添加一個類(保存),有一個延遲,然後刪除類。
所以,我說這一點:
$('.button').addClass('saving').delay(2000).removeClass('saving');
出於某種原因,它不工作。我究竟做錯了什麼?
.delay()實際上是動畫。
$('.button').addClass('saving');
setTimeout(function() {
$('.button').removeClass('saving');
}, 2000);
試試這個可能:
$('.button').addClass('saving').delay(2000, function() {
$(this).removeClass('saving')
});
關閉!你需要'.delay(2000).queue(function(){});'在@ undefined的答案中,它將起作用 –
delay
只與動畫相關的方法的工作原理,你可以使用queue
方法:
$('.button').addClass('saving').delay(2000).queue(function(next){
$(this).removeClass('saving');
next();
});
我試過'.queue()',但它在我的應用程序中不起作用。 – user1975031
我正在使用1.8.3。 – user1975031
@ user1975031好的,幸運的是'setTimeout'適合你。可能的原因是我在代碼中使用了'div'作爲選擇器,並且只是複製/粘貼它。 – undefined
如果有人需要多個添加/刪除類,.dequeue();也被要求正常運作。
$('.button').addClass('saving').delay(2000).queue(function(){
$(this).removeClass('saving');
$(this).dequeue();
});
事實上,[setTimeout的是要走的路(http://jsfiddle.net/QN66w/) –
啊,我不知道'.delay()'是爲動畫。它的工作,謝謝! – user1975031