重置循环setTimeout()

问题描述 投票:0回答:1

我能够使用setTimeout()每隔几秒钟向表中添加一行。但是,当我尝试重置表并再次填充它时,上次的行仍会显示。我想重置整个表并从0开始。

这是我的代码:

$(document).ready(() => {
  $('#btn-start').click(() => {
      showMoves();
  });
  $('#btn-reset').click(() => {
      $('#table-moves tbody tr').remove();
      clearTimeout(timer);
  });
});

var timer;

function showMoves () {
  const moves = ['nf3','d5','g3', 'g6'] // ...
  $('#table-moves tbody tr').remove();
  for (let i = 0; i < moves.length; i++) {
    timer = setTimeout(() => {
        $('#tbody-moves').append(`<tr><td>${i + 1}</td><td>${moves[i]}</td></tr>`);        
    }, 2000 * i);
    if (i >= moves.length - 1) {
      clearTimeout(timer);
    }
  }
}

Output

谢谢。

我能够使用setTimeout()每隔几秒钟向表中添加一行。但是,当我尝试重置表并再次填充它时,上次的行仍会显示。我想重设整个...

javascript settimeout
1个回答
-1
投票

您仅从表格中删除一行。您必须删除所有行。

© www.soinside.com 2019 - 2024. All rights reserved.