在我的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