将类添加到列表项的随机顺序,直到所有类都添加了类

时间:2014-08-20 17:11:07

标签: jquery random

这是一种按顺序添加的方法,但我可以弄清楚如何以随机顺序进行添加。

关于如何完成随机顺序的任何想法?这是我的小提琴:

$("li").each(function(i,el) {
  var $this = $(this);
  var random = Math.floor(Math.random() * $this.length);
  setTimeout(function() {
    $this.eq(random).addClass('active');
  }, i*1000); // milliseconds
});

http://jsfiddle.net/1wgwajcd/1/

1 个答案:

答案 0 :(得分:2)

这样的事情应该这样做

(function hl() {
    var li = $('li'),
        r  = Math.floor(Math.random() * li.length),
        h  = li.eq(r).hasClass('active'),
        w  = li.filter('.active').length;

    li.eq(r).addClass('active');

    if (w < li.length) setTimeout(hl, h ? 0 : 1000);
})();

FIDDLE