20

在我的 Rails 应用程序中,当用户点击 Save 按钮时,我发送一个 Ajax 请求,当它发送请求时,我可以返回一些 jQuery。

我想做的是添加一个类(保存),延迟然后删除该类。

所以,我添加了这个:

$('.button').addClass('saving').delay(2000).removeClass('saving');

由于某种原因,它不起作用。我究竟做错了什么?

4

5 回答 5

37

.delay()实际上是用于动画的。

使用setTimeout()

$('.button').addClass('saving');

setTimeout(function () { 
    $('.button').removeClass('saving');
}, 2000);
于 2013-01-21T21:35:38.600 回答
13

delay仅适用于与动画相关的方法,您可以使用queue方法:

$('.button').addClass('saving').delay(2000).queue(function( next ){
    $(this).removeClass('saving'); 
    next();
});

http://jsfiddle.net/Rp6Xw/44/

于 2013-01-21T21:41:33.430 回答
4

如果有人需要多个类的添加/删除,.dequeue(); 也需要正常运行。

$('.button').addClass('saving').delay(2000).queue(function(){
   $(this).removeClass('saving'); 
   $(this).dequeue();
});
于 2015-05-16T12:17:33.010 回答
1

试试这个也许:

$('.button').addClass('saving').delay(2000, function() {
    $(this).removeClass('saving')
});
于 2013-01-21T21:37:45.760 回答
1

最短的方式。

$(".button").addClass("saving").show(0).delay(2000).removeClass("saving");
于 2021-03-26T06:06:51.383 回答