【问题标题】:how to place a setTimeout on document.addEventListener如何在 document.addEventListener 上设置 setTimeout
【发布时间】:2023-02-22 04:00:45
【问题描述】:

你好我是这个论坛的新人

在我的 html 代码中,我有一个按钮,它有一个触发 文档.addEventListener

我希望我的 document.addEventListener 能够在点击我的按钮后 5 秒内触发

这可能吗


     <a class="btn btn-primary ajouter-panier b-items__item__add-to-cart" >
              ajouter au panier
            </a>




<script>
document.addEventListener("click", e => {


  let el = e.target;
  if (el.tagName !== "A") {
    el = el.closest("a");
  }
  if (!el || !el.classList.contains("ajouter-panier")) {
    return;
  }

  const card = el.closest(".testcard");
  if (!card) {
    return;
  }

  const panel = card.querySelector(".panel");
  if (!panel) {
    return;
  }

  e.preventDefault();

  if (el.classList.contains("b-items__item__add-to-cart")) {
    panel.style.display = "block";
  } else if (el.classList.contains("ajouter-panier")) {
    panel.style.display = "none";
  }
});
</script>

【问题讨论】:

  • 是的,可以使用setTimeout。你尝试了什么,什么没有按预期工作?

标签: javascript


【解决方案1】:

将事件处理程序中的所有代码移动到 setTimeout 回调中:

document.addEventListener("click", e => {
    setTimeout(() => {
        // code here
    }, 5000);
});

【讨论】:

    猜你喜欢
    • 2018-05-15
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 2020-01-03
    • 1970-01-01
    • 2021-04-15
    • 2017-05-07
    • 2014-09-07
    相关资源
    最近更新 更多