Addclass延迟列表

时间:2014-02-12 17:14:06

标签: jquery list addclass

我使用骨干视图渲染列表。渲染视图后,我想循环遍历列表元素,然后一次向一个li添加一个类(每次从前一个中删除它)。

到目前为止,我的代码看起来像这样:

  onRender: function() {
    $('ul > li').each(function(i, element) {
      $(element).delay(i * 50000).toggleClass('fly-in-out')
    })
  }

然而,当视图加载时,所有li都有fly-in-out类。

任何帮助非常感谢

2 个答案:

答案 0 :(得分:2)

使用延迟,您需要将代码放入队列:

onRender: function () {
    $('ul > li').each(function (i, element) {
        $(element).delay(i * 50000).queue(function (next) {
            $(this).toggleClass('fly-in-out');
            next();
        });
    })
}

或使用超时:

onRender: function () {
    $('ul > li').each(function (i, element) {
        setTimeout(function () {
            $(element).toggleClass('fly-in-out');
        }, i * 50000);
    })
}

答案 1 :(得分:0)

您的$(element).delay仅指一个元素,而不是所有元素。这是通过并一次一个地将类应用于每个元素而不访问任何其他元素