如何添加延迟时间的类

时间:2014-08-25 10:33:14

标签: jquery

假设我有以下html:

<ul>
  <li class="activeitem"><a href="#">one</a></li>
  <li><a href="#">two</a></li>
  <li><a href="#">three</a></li>
  <li><a href="#">four</a></li>
  <li><a href="#">five</a></li>
</ul>

$('ul a').on('click',function(e){
  e.preventDefault();
.....

现在,我希望如果我点击五,那么它的父亲的先前列表应该添加类activeitem但是首先从这个添加类的下一个已经添加接下来并在400ms后删除该类,然后将类添加到next li并在400ms后再次删除class并将class添加到next li。这个过程发生在点击的菜单li,即五,现在最后我应该将activeitem类送到cilcked链接的父母li。

1 个答案:

答案 0 :(得分:0)

使用setTimeout和递归

function doSetTimeout(){
    setTimeout(function(){
       $ul.children('li').removeClass('activeitem');
       $ul.children('li:nth-child(' + i + ')').addClass('activeitem');

        if (i <= index){
            doSetTimeout();
        }
        i++;

    },400);
}

这是Fiddle