在一定时间过去后,你如何做某事?
how do you do something after a certain time has passed?
我正在尝试在 JS 中发出警报,我在其中获取输入值并将其乘以 1000 以获得 ms 值和 setTimeout 函数,该函数将段落元素更改为 Time Up,时间在setTimeout 是输入 x 1000 的值(因为毫秒)有点像这样:
function domChanger() {
document.getElementById("paragraph").innerHTML = "Time Up";
}
function time(alert) {
alert = document.getElementById("input")
alert.value *= 1000;
setTimeout(domChanger(), alert.value)
}
它没有像我预期的那样执行(在 alert.value * 1000 设置的时间过去后执行该功能)它立即输出 Time Up。我误会了什么吗?因为我在 Google 上搜索了大约 1 小时,除了 setTimeout 和 setInterval 之外我找不到任何东西。
问题是
setTimeout(domChanger(), alert.value)
其中 domChanger()
立即执行
你需要传递函数引用
setTimeout(domChanger, alert.value)
演示
function domChanger() {
document.getElementById("paragraph").innerHTML = "Time Up";
}
function time() {
var alert = document.getElementById("input")
alert.value *= 1000;
setTimeout(domChanger, alert.value)
}
<p id="paragraph"></p>
<input id="input" type="number" step="1" min="1" value="2">
<button type="button" onclick="time()">time</button>
您不需要将时间作为参数传递。只需执行以下代码即可。
HTML
<p id="paragraph"></p>
<input type="number" id="input">
<button onclick="time()">Lauch domChanger</button>
<script src="./index.js"></script>
JS
function domChanger() {
document.getElementById("paragraph").innerHTML = "Time Up";
}
function time() {
alert = document.getElementById("input");
alert.value *= 1000;
setTimeout(domChanger, alert.value);;
}
我正在尝试在 JS 中发出警报,我在其中获取输入值并将其乘以 1000 以获得 ms 值和 setTimeout 函数,该函数将段落元素更改为 Time Up,时间在setTimeout 是输入 x 1000 的值(因为毫秒)有点像这样:
function domChanger() {
document.getElementById("paragraph").innerHTML = "Time Up";
}
function time(alert) {
alert = document.getElementById("input")
alert.value *= 1000;
setTimeout(domChanger(), alert.value)
}
它没有像我预期的那样执行(在 alert.value * 1000 设置的时间过去后执行该功能)它立即输出 Time Up。我误会了什么吗?因为我在 Google 上搜索了大约 1 小时,除了 setTimeout 和 setInterval 之外我找不到任何东西。
问题是
setTimeout(domChanger(), alert.value)
其中 domChanger()
立即执行
你需要传递函数引用
setTimeout(domChanger, alert.value)
演示
function domChanger() {
document.getElementById("paragraph").innerHTML = "Time Up";
}
function time() {
var alert = document.getElementById("input")
alert.value *= 1000;
setTimeout(domChanger, alert.value)
}
<p id="paragraph"></p>
<input id="input" type="number" step="1" min="1" value="2">
<button type="button" onclick="time()">time</button>
您不需要将时间作为参数传递。只需执行以下代码即可。
HTML
<p id="paragraph"></p>
<input type="number" id="input">
<button onclick="time()">Lauch domChanger</button>
<script src="./index.js"></script>
JS
function domChanger() {
document.getElementById("paragraph").innerHTML = "Time Up";
}
function time() {
alert = document.getElementById("input");
alert.value *= 1000;
setTimeout(domChanger, alert.value);;
}