使用用户输入设置计时器,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识别为可以设置为用作倒计时的参数。我不知道该怎么办。

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

setTimeout函数不将input.value识别为可设置为用作倒计时的参数

它可以识别它。如果你遇到错误,那么你的输入很可能是文本输入,在这种情况下,你必须将其值转换为数字,然后才能在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>

最新更新