我试图改变jQuery选择的顺序,而不会改变DOM中的元素。
我需要随机选择以随机顺序为每个元素添加一个类,这就是我的代码应该是这样的:
$(".item").shuffle().each(function (i, element) {
$(element).delay(i * 100).queue(function (next) {
$(this).addClass("shown");
next();
});
});
有人可以帮我找到我需要的shuffle()
功能吗?
答案 0 :(得分:6)
我从this answer借用了Array.shuffle
方法,并将其变成了jQuery插件
$.fn.shuffle = function(){
for(var j, x, i = this.length; i; j = Math.floor(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
return this;
};
答案 1 :(得分:0)
$.fn.shuffle = function () {
'use strict';
var self = this,
i,
rnd,
len = self.length - 1;
for (i = len; i > 0; i -= 1) {
rnd = Math.floor(Math.random() * len) % i;
[self[i], self[rnd]] = [self[rnd], self[i]];
}
return self;
}