【问题标题】:delaying code in jquery延迟jQuery中的代码
【发布时间】:2014-02-03 07:31:18
【问题描述】:

我正在尝试按顺序添加和删除一些类,中间有延迟。 我有几个列表项,我想在单击另一个按钮时依次更改背景颜色(有点像闪烁效果)。

$("#changeclasses").click(function () {
    $(".listitem1").addClass("yellow");
    $(".listitem1").removeClass("yellow");   
    $(".listitem2").addClass("yellow");
    $(".listitem2").removeClass("yellow");      
});

我尝试了以下方法,但显然它不起作用:/

$("#changeclasses").click(function () {
    $(".listitem1").addClass("yellow").delay(200);
    $(".listitem1").removeClass("yellow").delay(200);  
    $(".listitem2").addClass("yellow").delay(200);
    $(".listitem2").removeClass("yellow");        
});

任何帮助都会很棒!谢谢。

【问题讨论】:

  • 您是否尝试过链接您的操作而不是单独的操作,例如:$(".listitem1").addClass("yellow").delay(200).removeClass("yellow").delay(200);
  • mh。这似乎不起作用。但“settimeout”答案工作正常。
  • 啊.. 好久没接触 jquery 了,抱歉。我记得有一种方法可以通过类似于我上面所做的“链接”来做到这一点,但显然它并不完全如此。

标签: jquery delay addclass effect


【解决方案1】:

你应该考虑使用setTimeout

$("#changeclasses").click(function () {
    $(".listitem1").addClass("yellow");
    setTimeout(function(){ $(".listitem1").removeClass("yellow"); }, 200);
    setTimeout(function(){ $(".listitem2").addClass("yellow") }, 400);
    setTimeout(function(){ $(".listitem2").removeClass("yellow") }, 600);      
});

【讨论】:

  • 非常感谢! .. 只是为了兴趣——为什么 settimeout 更好?显然是因为它有效? :)
  • delay 可以在一个 jquery 对象中使用,所以我认为这里没有一种方法可以省略使用 setTimeout :) 此外,setTimeout 正是 jquery 的 delay没有
猜你喜欢
  • 1970-01-01
  • 2013-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-08
  • 2011-05-07
  • 1970-01-01
  • 2018-07-11
相关资源
最近更新 更多