Hallo Ik probeer de functie SetTimeout () in Javascript te gebruiken, behalve dat het niet werkt. Alvast bedankt aan iedereen die kan helpen.
<!DOCTPYE html>
<html>
<head>
<script>
var button = document.getElementById("reactionTester");
var start = document.getElementById("start");
function init() {
var startInterval/*in milliseconds*/ = Math.floor(Math.random() * 30) * 1000;
setTimeout(startTimer(), startInterval);
}
function startTimer() {
document.write("hey");
}
</script>
</head>
<body>
<form id="form">
<input type="button id=" reactionTester" onclick="stopTimer()">
<input type="button" value="start" id="start" onclick="init()">
</form>
</body>
</html>
Antwoord 1, Autoriteit 100%
Deze regel:
setTimeout(startTimer(), startInterval);
U aanroepen startTimer()
. In plaats daarvan moet je het doorgeven als een functie die moeten worden ingeroepen , zoals SO:
setTimeout(startTimer, startInterval);
Antwoord 2, Autoriteit 20%
Als u in een situatie bent waarin u parameters moet doorgeven aan de functie die u na time-out wilt uitvoeren, kunt u de functie “Benoemde” in een anonieme functie inpakken.
d.w.z. Werkt
setTimeout(function(){ startTimer(p1, p2); }, 1000);
d.w.z. Werkt niet omdat het de functie meteen zal bellen
setTimeout( startTimer(p1, p2), 1000);
Antwoord 3, Autoriteit 10%
twee dingen.
-
Verwijder de haakjes in
setTimeout(startTimer(),startInterval);
. Houden van de haakjes roept de functie onmiddellijk op. -
Uw StartTimer-functie overschrijft de pagina-inhoud met uw gebruik van
document.write
(zonder de bovenstaande fix) en wijst het script en HTML in het proces uit.
Antwoord 4, Autoriteit 4%
Als u een parameter wilt doorgeven op de vertraagde functie:
setTimeout(setTimer, 3000, param1, param2);
Antwoord 5
Gebruik:
setTimeout(startTimer, startInterval);
U belt Starttimer () en voer het resultaat (dat is niet gedefinieerd) als een argument voor insteltijd ().
Antwoord 6
Wijzig uw code als volgt:
<script>
var button = document.getElementById("reactionTester");
var start = document.getElementById("start");
function init() {
var startInterval/*in milliseconds*/ = Math.floor(Math.random()*30)*1000;
setTimeout(startTimer,startInterval);
}
function startTimer(){
document.write("hey");
}
</script>
Zie of dat helpt. Kortom, het verschil verwijst naar de functie ‘Starttimer’ in plaats van het uit te voeren.
Antwoord 7
Om weinig gemakkelijker te maken om gebruik zoals hieronder te begrijpen, die ik het meest de voorkeur geven. Ook wordt het vergemakkelijkt om meerdere functie tegelijk te bellen. Uiteraard
setTimeout(function(){
startTimer();
function2();
function3();
}, startInterval);