【问题标题】:jquery move through list of elements adding and remove class in sequencejquery在元素列表中移动,按顺序添加和删除类
【发布时间】:2013-03-18 03:51:38
【问题描述】:

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

原来如此:

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

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

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

    var thiis = $(this);

    thiis.addClass('showing');

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

【问题讨论】:

  • 因为您已将其添加到 each 循环中。
  • @DipeshParmar 是否以某种方式使超时无效?你有关于替代技术的建议或任何关于它为什么不起作用的文档吗?
  • @ahren 显然我没有

标签: jquery class timeout sequence


【解决方案1】:
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/

【讨论】:

    【解决方案2】:

    我想你想要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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-02
      • 1970-01-01
      • 2015-09-20
      • 1970-01-01
      • 2012-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多