jquery - 在时间之后在 li 中添加类并从第一个重新添加

标签 jquery

我有这样的ul

<ul>
    <li>one</li>
    <li>one</li>
    <li>one</li>        
</ul>

我想要jquery代码

  1. 1- 在第一个 li 中添加一个 当前
  2. 2 秒后添加第二个 li
  3. 等等
  4. 如果这是从第一个版本开始的最后一个版本

我永远不会使用像cycle这样的jquery插件 因为我必须亲手做

最佳答案

CSS:

li {
    display: none;
}

Javascript:

$(function() {
    var $list = $('ul li');

    $list.filter(':first').addClass('current');

    setInterval(function() {
        if( $list.filter('.current').index() !== $list.length - 1 ) {
            $list.filter('.current').removeClass('current').next().addClass('current');
        }
        else {
            $list.removeClass('current').filter(':first').addClass('current');
        }
    }, 2000);
});

演示:http://www.jsfiddle.net/uQKX6/

受到 RightSaidFred 的启发:

$(function() {
    var $list = $('ul li'),
        tID   = null,
        i     = 0;

    function loop() {
        alert($list.removeClass('current').slice(i, i+1).addClass('current')[0].id);

        if( i < $list.length-1 ) i++;
        else i = 0;

        tID = setTimeout(loop, 2000);
    }

    $list.hover(function() {
        clearTimeout(tID);
    }, function() {
        loop();
    });

    loop();
});

演示:http://www.jsfiddle.net/uQKX6/4/

关于jquery - 在时间之后在 li 中添加类并从第一个重新添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4927325/

相关文章:

javascript - 我想在当前视频结束后自动播放下一个视频

jquery - 如何检测TinyMCE的变化?

php - Symfony2 Ajax 无限滚动

javascript - 当且仅当 JavaScript 中存在文本框值时,如何将参数附加到查询字符串?

javascript - 使用window.onbeforeunload,是否可以知道发生了哪个事件?

javascript - Jquery 欧芹验证不起作用

javascript - 如何从 d3.js 中的 Web API 加载外部 JSON 数据?

javascript - 如何在内容添加到 div 时自动滚动?

jquery - Fullcalendar:为什么日历在页面上出现两次?

javascript - 试图缩短可能包含链接的文本正文