Javascript Time Delay添加变量,然后删除具有一定迭代次数的变量



我(根据我目前的开发技能(过度承诺向一个志愿者小组交付我参与的一些代码,我最初认为这是一项简单的任务。本质上,由于新冠肺炎;抽奖";我们过去亲自做的事情现在正在以电子方式进行。我希望做的是模拟一个";"命运之轮";该方法将把彩票持有者列表中的名字拉到第二个列表中,但只是暂时(300毫秒(作为"可见"的预告片,然后删除它,然后添加另一个名字,再次作为预告片,以此类推,直到进行了一定数量的迭代(比如说60次(。我已经成功地让它发挥了作用,但;数据删除";setTimeout函数的操作方式很奇怪。基本上,有时一个项目出现然后消失,但有时两个项目在都消失之前就出现在列表中。我正试图使这成为一种1:1的关系:一个项目出现,另一个项目消失。

我是不是走错了路?如果是,你会给我什么建议,让我走上正轨?感谢您提供的任何帮助。我知道这只是一个";游戏";但事实上,我一路走来学到了很多。这是我迄今为止的代码。。。

var iteration = '0';
for (let i=0; i<60; i++) {
if(iteration == 1) { // Ignore first iteration
grid_Random.data.removeAll();
}
task(i); 
} 

function task(i) {
setTimeout(function() {
console.log(i);
var item = grid_Names.data.getItem(entry_id);
grid_Random.data.add(item);
Entry_id++;
iteration = '1'; // Sets switch to ignore first iteration
}, 300 * i); // This 'adds' item to grid (300 *1 adds a delay to each iteration)

setTimeout(function() {
console.log(i);
grid_Random.data.removeAll();
}, 500 * i); // This 'removes' item from grid (500 *1 adds a delay to each iteration)
} 

这里有一支很好的钢笔,可能已经准备好了。。。

只需取消对第5行的注释并注释掉第7行即可查看它的实际操作。。。。侯赛因·阿巴斯抽奖

也许研究内部回调和超时的实现会有所帮助。。。

一个片段:

$('document').ready(function() {
rollClick();
});
function rollClick() {
$('#roll').on('click', function(e) {
$(this).hide();
setDeceleratingTimeout(function() { randomName() }, 10, 40);
setTimeout(function() {
var winner = $('#names').text();
$('#winner').text(winner);
$('#names').hide();
$('#winner').html('<span>And the winner is...</span><br>' + winner);
}, 8000);
e.preventDefault();
});
}

最新更新