简体   繁体   English

jQuery AddClass 然后删除一个类

[英]jQuery AddClass then removing a class

In my Rails application, I send an Ajax request when the user hits the Save button, when it sends the request, I can return some jQuery.在我的 Rails 应用程序中,当用户点击保存按钮时,我发送一个 Ajax 请求,当它发送请求时,我可以返回一些 jQuery。

What I'd like to do is add a class (saving), have a delay and then remove the class.我想做的是添加一个类(保存),延迟然后删除该类。

So, I added this:所以,我添加了这个:

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

For some reason, it isn't working.由于某种原因,它不起作用。 What am I doing wrong?我究竟做错了什么?

.delay() is actually for animations. .delay()实际上是用于动画的。

Use setTimeout()使用setTimeout()

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

setTimeout(function () { 
    $('.button').removeClass('saving');
}, 2000);

delay only works with animation-related methods, you can use queue method: delay只适用于动画相关的方法,你可以使用queue方法:

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

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

If someone needs more than one adding/removing of the class, .dequeue();如果有人需要不止一个添加/删除类,.dequeue(); is also requered to function properly.还需要正常运行。

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

Try this maybe:试试这个也许:

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

最短的路。

$(".button").addClass("saving").show(0).delay(2000).removeClass("saving");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM