如何使用Javascript避免无限回调调用?

时间:2019-01-31 03:29:49

标签: javascript

我有以下代码。

html

<p id="test">hello</p>

javascript

document.getElementById("test").addEventListener("click", function() {
  console.log("called");
  document.getElementById("test").click();
});

document.getElementById("test").click();

当我运行它,控制台只打印“被称为”一次。我的问题是什么机制呢JavaScript的使用,以避免调用回调无限?

1 个答案:

答案 0 :(得分:-1)

我想这可能是一种反跳现象,在第一个事件仍在运行时或在特定时间段内它不会调度另一个click事件,以阻止双击触发事件处理程序两次。

document.getElementById("test").addEventListener("click", function() {
  console.log("called");
  document.getElementById("test").dispatchEvent(new MouseEvent('click', {
    view: window,
    bubbles: true,
    cancelable: true
  }));
});

document.getElementById("test").click();
<p id="test">hello</p>