【发布时间】:2011-11-19 19:06:51
【问题描述】:
我有一些代码可以从列表中随机突出显示一个名字(这很有效 - 请参阅 this fiddle):
function pickRandom() {
var random = Math.floor(Math.random() * 6);
$('.stname').css('background','none').eq(random).css('background','yellow');
}
但我想确保不会一遍又一遍地出现相同的名字。所以我打算记住最后 3 个选择的索引作为黑名单:
var recentlyAsked = new Array();
function pickRandom() {
var random;
do {
random = Math.floor(Math.random() * 6);
} while ($.inArray(random,recentlyAsked));
recentlyAsked.push(random);
if (recentlyAsked.length >= 4) recentlyAsked.shift();
$('.stname').css('background','none').eq(random).css('background','yellow');
}
这不起作用;见this fiddle。 警告:它会导致浏览器挂起。
有什么建议吗?
【问题讨论】:
-
您的浏览器挂起,因为循环没有停止。该警告实际上非常有用,但我怀疑有人会看到您链接到的小提琴:)
标签: javascript jquery arrays queue