在按钮上单击(游戏上下文),我想在显示下一个问题之前暂停以显示正确的答案。我该怎么做? 我试试这个:
showCorrectAnswer();
questionCounter++;
setTimeout(displayNext(), 6000);
/* Or */
showCorrectAnswer();
questionCounter++;
wait(6000);
displayNext();
/*with wait*/
function wait(ms){
var start = new Date().getTime();
var end = start;
while(end < start + ms) {
end = new Date().getTime();
}
}
但是不起作用。 感谢
答案 0 :(得分:1)
使用jquery,您可以使用:
$('.container').hide().delay(6000).fadeIn(displayNext());
答案 1 :(得分:1)
您应该将匿名函数传递给setTimeout()
(在超时到期时放置要执行的内容)或已定义函数的名称。如果将()
放在名称之后,就像你一样,在解析setTimeout()
时执行该函数,而不是在它到期时执行,期望运行函数的结果返回另一个将被执行的函数当setTimeout()
到期时 - 就像匿名函数一样。
以下任何一种都可以按预期工作。功能名称:
showCorrectAnswer();
questionCounter++;
setTimeout(displayNext, 6000);
...或匿名包装:
showCorrectAnswer();
questionCounter++;
setTimeout(function(){
displayNext();
}, 6000);
在大多数现实生活场景中,建议更改questionCounter
函数内的displaynNext()
值,而不是之前。
答案 2 :(得分:0)
看看这个
你做了一个小错误setTimeout(displayNext(),6000)
立即调用,而你应该只传递函数名。 setTimeout(displayNext,6000)
如果您想使用参数进行调用,请确保将其编写为函数,然后将所有代码放入其中setTimeout(function(){displayNext(parameter1,parameter2);},6000)
function displayNext(){
alert("display");
}
&#13;
<input type="number" step="1000" id="num_milisecond" value=1000> milliseconds
<input type="button" onclick="setTimeout(displayNext, document.getElementById('num_milisecond').value);" value="click to allert">
&#13;