使用用户输入设置计时器,JavaScript

Setting a timer using user input, JavaScript

我对编程还很陌生。

对于一个学校项目,我正在尝试设置一个 setTimeout();使用用户输入的功能。 这是我的代码:

let header = document.getElementById('header');
let input = document.getElementById('input');
let btn = document.getElementsByTagName('div')[1];
let response1 = document.getElementById('response1');

function playSound() {
  setTimeout(function () {
    var x = document.getElementById("myAudio")
    x.play()
  }, 3000); //input.value?? or 1000 * input.value??
}

通常,如果我想在输入框中访问用户的输入,我会输入 input.value。 但是,setTimeout 函数不会将 input.value 识别为可以设置为用作倒计时的参数。我不知道该怎么办。

如有任何帮助,我们将不胜感激。

The setTimeout function does not recognize input.value as a parameter that can be set to be used as a countdown

它确实识别它。如果您遇到错误,那么很可能您的输入是文本输入,在这种情况下,您必须先将其值转换为数字,然后才能在 setTimeout:

中使用
let header = document.getElementById('header');
let input = document.getElementById('input');
let btn = document.getElementsByTagName('div')[1];
let response1 = document.getElementById('response1');

function playSound() {
  setTimeout(function () {
    var x = document.getElementById("myAudio")
    x.play()
  }, Number(input.value));
}

如果输入的值以秒为单位,则使用input.value * 1000

要动态执行setInterval,您需要调用函数而不是输入文本:

  1. 创建函数startInterval
  2. 调用函数onChangeInterval在输入文本事件中使用输入值

<script>
    var intervalId;
    
    function startInterval(_interval) {    
        intervalId = setInterval(function() {
        }, _interval);
    }
    
    function onChangeInterval (interval) {
        interval -= 100;
        clearInterval(intervalId);
        startInterval(interval);
    }
</script>