使用delay()和removeClass()

时间:2015-06-02 01:17:05

标签: jquery css getuikit

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

这是我的代码

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

上面的代码什么也没做。我可以使用以下代码添加该类

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

我可以用

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

但是我不能拖延课程的删除。

5 个答案:

答案 0 :(得分:2)

jquery延迟仅用于动画,你将无法以这种方式延迟removeClass,而是使用setTimeout:

var $el = $('#myId');
$el .addClass("uk-form-danger")
setTimeout(function(){
    $el .removeClass("uk-form-danger");
}, 5000);

答案 1 :(得分:1)

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

var myItem = $(this);

myItem.addClass("uk-form-danger");
setTimeout( function(){ myItem.removeClass("uk-form-danger"); }, 5000 );

答案 2 :(得分:1)

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

var myObject = $(this);

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

setTimeout(function()
{
    myObject.removeClass("uk-form-danger");
}, 5000);

答案 3 :(得分:1)

使用setTimeout

尝试这样的事情
var self = $(this);
self.addClass('uk-form-danger');
setTimeout(function () {
    self.removeClass('uk-form-danger');
}, 5000);

答案 4 :(得分:0)

最简单方式是使用jQueryUI

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

  

$(本).addClass(" UK-形状危险&#34 ;,    250 )。延迟(5000).removeClass(" uk-form-danger", 250 );