问题:for循环中的setTimout函数立即求值

时间:2018-11-20 21:56:45

标签: javascript settimeout delay sleep

我想将js代码插入控制台,这会在2个元素上产生2个click()方法,但这些方法之间必须延迟。 我考虑过使用setTimeout函数和for循环解决此问题,并且使用数组创建了一个刮擦,它应该如何工作,但是所有setTimeout函数都立即求值,因此它们之间没有延迟。 我不使用jQuery。

function func() {
  var tr = document.createElement('TR');
  var tableBody = document.getElementById("tbo");
  tableBody.appendChild(tr);
  var td = document.createElement('TD');
  td.width = '75';
  td.appendChild(document.createTextNode("Cell "));
  tr.appendChild(td);
}

function myFunction() {
  var myTableDiv = document.getElementById("myDynamicTable");
  var table = document.createElement('TABLE');
  table.border = '1';
  var tableBody = document.createElement('TBODY');
  tableBody.setAttribute('id', 'tbo')
  table.appendChild(tableBody);

  for (x = 0; x < 10; x++) {
    myVar = setTimeout(func, 3000)
  }
  myTableDiv.appendChild(table);
}
<!DOCTYPE html>
<html>

<body>

  <button onclick="myFunction()">Create the table</button>
  <button onclick="clearTimeout(myVar)">Cancel the process</button>
  <div id="myDynamicTable"></div>
</body>

</html>

主要目的是创建这样的代码:

element.click();
sleep()
element.click()

0 个答案:

没有答案