jquery 在显示下一步之前暂停

jquery pause before displaying next step

在下一次单击按钮(游戏上下文)时,我想在显示下一个问题之前暂停以显示正确答案。我该怎么做? 我试试这个:

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();
    }
}

但是不起作用。 谢谢

有了 jquery,您可以使用:

$('.container').hide().delay(6000).fadeIn(displayNext());

看看这个

你犯了一个小错误 setTimeout(displayNext(),6000) 立即调用而不是你应该只传递函数名。 setTimeout(displayNext,6000)

如果你想用参数调用,确保你写成一个函数,然后把你所有的代码都放在里面setTimeout(function(){displayNext(parameter1,parameter2);},6000)

function displayNext(){
alert("display");
}
<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">

您应该将匿名函数传递给 setTimeout()(在其中放置超时到期时要执行的内容)或已定义函数的名称。如果你像你一样在名字后面放置 () ,函数在解析 setTimeout() 时执行,而不是在它过期时执行,期望 运行 你的函数的结果为 return 另一个将在 setTimeout() 到期时执行的函数 - 就像匿名函数一样。

以下任何一项都将按预期工作。函数名称:

showCorrectAnswer();
questionCounter++;
setTimeout(displayNext, 6000);

...或匿名包装器:

showCorrectAnswer();
questionCounter++;
setTimeout(function(){
  displayNext();
}, 6000);

在大多数现实生活场景中,建议在 displaynNext() 函数内更改 questionCounter 值,而不是之前。