Jquery addClass有延迟

时间:2013-03-22 10:55:33

标签: javascript jquery html html-lists

我有一个像这样的基本菜单:

<ul>
    <li>item 1</li>
    <li>item2</li>
</ul>

如何每隔800毫秒为每个<li>元素添加“current”类,当然还会删除旧的当前元素?

2 个答案:

答案 0 :(得分:2)

$('li').each(function(i){
    var $that = $(this);
    setTimeout(function(){
        $that.addClass('current').siblings().removeClass('current');
    }, i *800);
});

Live DEMO

答案 1 :(得分:2)

这将永远循环通过任意数量的列表项:

$(document).ready(function() {
    var $lis = $("li"), i = -1;
    function nextCurrent() {
        $lis.eq(i).removeClass("current");
        $lis.eq(i=(i+1)%$lis.length).addClass("current");
        setTimeout(nextCurrent, 800);
    }
    nextCurrent();
});

演示:http://jsfiddle.net/nnnnnn/4skLV/

我可以建议您在下次发布问题之前阅读本文:What have you tried?