【问题标题】:How to prevent button click while event still happening? Javascript如何在事件仍在发生时防止按钮单击? Javascript
【发布时间】:2022-08-18 21:44:28
【问题描述】:

我试图在网上找到我的问题的答案,但我没有遇到任何类似的事情。

JAVASCRIPT 中是否有任何方法可以防止同一事件触发两次,而第一次触发不会完成所有工作。我有某种旋转的风团,我想防止按下按钮直到它转一圈,转一圈所需的时间是 2 秒,但是当第一次旋转完成时,我希望按钮工作以同样的方式一遍又一遍。

这是我的那个事件的 JAVASCRIPT 代码。

`let num = 0

  spin2.addEventListener(\'click\', () => {
    num += 360
    linija.style.transform = `rotate(${num}deg)`
    linija.style.transition = \"all 2s\"
  })`
  • 如果它是一个实际的按钮 - 那么就禁用它?
  • 使用动画而不是过渡(无论如何这更干净),并听取过渡完成的事件。

标签: javascript


【解决方案1】:

使用 setTimeout 做类似的事情:

button.addEventListener('click', () => {
  if (buttonDisabled === false) {
    // Logic
    num += 360
    linija.style.transform = `rotate(${num}deg)`
    linija.style.transition = "all 2s"
    // Disable button
    buttonDisabled = true;
    button.textContent = 'Disabled';
    setTimeout(function() {
      buttonDisabled = false;
      button.textContent = 'Click me';
    }, 5000);
  }
});

另外,你应该看看这个:how to disable button for period and repeat that again (javaScript)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    • 2018-07-08
    • 1970-01-01
    相关资源
    最近更新 更多