2

无法完全确定我对此的逻辑:漫长的一天。本质上,我有一个图像列表,我需要在重复为每个图像添加一个类并持续一段时间并每次清除该类时运行。

所以那是:

添加类,超时,删除类,重复下一个,如果最后转到第一个

这就是我所拥有的,它根本不起作用:

ul.find('.frame').each(function(){

    var thiis = $(this);

    thiis.addClass('showing');

    setTimeout(function(){
        thiis.removeClass('showing');
    }, 1000);
});
4

2 回答 2

2
var $f = $('ul').find('.frame');

function recursive(i) {
    $f.removeClass('showing').eq(i).addClass('showing');
    setTimeout(function () {
        recursive(++i % $f.length)
    }, 1000);
}
recursive(0);

http://jsfiddle.net/Wja4r/

于 2013-03-18T04:12:01.093 回答
1

我想你想要setInterval- 重复直到你清除它。

var $items = $('.frame'),
    delay = 1000;
    $items.first().addClass('showing');

setInterval(function(){
  var $current = $items.filter('.showing'),
      $next = $current.next().length ? $current.next() : $items.first();

  $current.removeClass('showing');
  $next.addClass('showing');
}, delay);

演示:http: //jsfiddle.net/PELjq/2/

于 2013-03-18T04:06:18.377 回答