3

如何延迟删除 jQuery 中的 css 类?

这是我的代码

$(this).addClass("uk-form-danger").delay(5000).removeClass("uk-form-danger");

上面的代码什么都不做。我可以使用以下代码添加类

$(this).addClass("uk-form-danger");

我可以删除它

$(this).removeClass("uk-form-danger");

但我不能延迟课程的移除。

4

5 回答 5

3

您可以使用 setTimeout 轻松完成此操作:

var myItem = $(this);

myItem.addClass("uk-form-danger");
setTimeout( function(){ myItem.removeClass("uk-form-danger"); }, 5000 );
于 2015-06-02T01:21:05.340 回答
3

jquery delay 仅用于动画,您将无法以这种方式延迟 removeClass,请改用 setTimeout:

var $el = $('#myId');
$el .addClass("uk-form-danger")
setTimeout(function(){
    $el .removeClass("uk-form-danger");
}, 5000);
于 2015-06-02T01:21:14.817 回答
1

您是否尝试过使用 setTimeout 而不是延迟?

var myObject = $(this);

myObject.addClass("uk-form-danger");

setTimeout(function()
{
    myObject.removeClass("uk-form-danger");
}, 5000);
于 2015-06-02T01:21:05.423 回答
1

使用 setTimeout 尝试这样的事情

var self = $(this);
self.addClass('uk-form-danger');
setTimeout(function () {
    self.removeClass('uk-form-danger');
}, 5000);
于 2015-06-02T01:21:35.787 回答
0

简单的方法是使用jQueryUI

.delay()仅适用于效果队列中的方法。您需要通过包含持续时间将您的.addClass()和放入默认效果队列中。.removeClass()

$(this).addClass("uk-form-danger", 250 ).delay(5000).removeClass("uk-form-danger", 250 );

于 2017-11-20T21:16:18.637 回答