jQuery delay not working

后端 未结 3 717
孤城傲影
孤城傲影 2020-11-28 08:30
$(\'.transparent\').removeClass(\'transparent\').delay(2000).addClass(\'not_transparent\').delay(4000)

I have a div that is semi transparent and th

3条回答
  •  臣服心动
    2020-11-28 09:04

    .delay() is used for items that are part of a queue, like animations. A simple addClass is not queued.

    You could use setTimeout.

    var trans = $('.transparent').removeClass('transparent');
    setTimeout(function() {
        trans.addClass('not_transparent');
    }, 2000);
    

    As an alternative, you could add the non-queued item to the queue using .queue(), though I think a setTimeout would be better.

    $('.transparent').removeClass('transparent').delay(2000).queue(function(nxt) {
          $(this).addClass('not_transparent');
          nxt();
    });
    

提交回复
热议问题