我有以下代码。
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的使用,以避免调用回调无限?
答案 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>