首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery延迟不起作用

jQuery延迟不起作用
EN

Stack Overflow用户
提问于 2010-12-28 14:28:52
回答 3查看 56K关注 0票数 67
代码语言:javascript
复制
$('.transparent').removeClass('transparent').delay(2000).addClass('not_transparent').delay(4000)

我有一个半透明的div,然后想把它切换到非透明。但是jQuery .delay();方法在这里似乎不起作用。我尝试了.fadeIn();,它可以延迟工作,但是它不能工作在不断变化的类中。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-28 14:35:48

.delay()用于作为queue一部分的项目,如动画。简单addClass不会排队。

您可以使用setTimeout

代码语言:javascript
复制
var trans = $('.transparent').removeClass('transparent');
setTimeout(function() {
    trans.addClass('not_transparent');
}, 2000);

作为另一种选择,您可以使用.queue()将未排队的项添加到队列中,不过我认为setTimeout会更好。

代码语言:javascript
复制
$('.transparent').removeClass('transparent').delay(2000).queue(function(nxt) {
      $(this).addClass('not_transparent');
      nxt();
});
票数 142
EN

Stack Overflow用户

发布于 2015-09-08 19:50:24

我知道这是一个老生常谈的问题,但是仍然有很多来自google的流量,所以我会补充我的两点意见;

你可以用像这样的东西-

代码语言:javascript
复制
$('.transparent').fadeIn().delay(500).queue(function(){
  $('.transparent').addClass('yourclass');
});

您可以将函数传递给队列,以便在延迟后执行它们。我自己也在用它来做非常类似的例子。

票数 8
EN

Stack Overflow用户

发布于 2014-08-10 08:25:13

.delay()不能在函数外部使用.addClass()标记,因此只需使用:

代码语言:javascript
复制
delay();
function delay(){
     $('.pgtitle').delay(5000).fadeIn(0).addClass('animated bounceInDown');
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4544126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档