我正在嘗試在 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。我誤解了什么嗎?因為我在谷歌上搜索了大約 1 小時,除了 setTimeout 和 setInterval 之外我找不到任何東西。
uj5u.com熱心網友回復:
問題是
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>
uj5u.com熱心網友回復:
您不需要將時間作為引數傳遞。只需執行以下代碼即可。
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);;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/379252.html
標籤:javascript 时间
