首页 > 解决方案 > 如何使按钮在第一次点击事件结束之前不会对多次点击做出反应

问题描述

我做了一个时钟并对其进行编码,以使时钟根据讲师的要求每季度报时。但是有一个问题,当我多次点击时,时钟会一次又一次地报时,直到报时的次数等于点击的次数。我想也许我可以让按钮只工作一次。我在 html 中做到了:<input= id="talkBTN" type="submit" value="Tell the time!" onclick=this.disabled>

但这种方式并不能彻底解决问题,因为它只是禁止我使用按钮。

这是“告诉时间”的编码。我想我应该使用 addEventListener 和 removeEventListener。

function tellTime(){
let currentTime = new Date();
timeWords.push("timeis");
numToWords(currentTime.getHours());
numToWords(currentTime.getMinutes());
console.log(timeWords);
timeTeller.addEventListener("ended", sayWords);
sayWords();
}



function sayWords(){
if (timeWords.length > 0) {
    timeTeller.src = soundURL + timeWords[0] + ".mp3";
    timeTeller.play();
    timeWords.shift();
    } else {
      timeTeller.removeEventListener("ended", sayWords);
      }
}

function numToWords(value){
if(value <= 20){
    timeWords.push(value);
    } else {
      let tens = Math.floor(value / 10);
      timeWords.push(tens * 10);
      if (value%10 != 0) {
          timeWords.push(value%10);
          }
    }
}

标签: javascriptmultimedia

解决方案



推荐阅读