我正在制作棋盘游戏,我有一个根据玩家目的地调用各种警报的功能。对于最终目的地,我正在尝试呼叫警报消息,然后呼叫确认消息,询问他们是否要再次播放。我想捕获确认响应并在单击OK时触发reset()函数。
对于警报的顺序然后确认,我认为错开它们的唯一方法是使确认消息的setTimeout延迟比警报消息稍长一些。
另外,我的else语句是一个console.log(“Game over。”),即使在弹出确认消息之前,它也会显示在控制台中。此外,单击确定或取消确认消息不会触发任何操作。不知道发生了什么。
function message(dest) {
if(dest===5) window.setTimeout(alert, 5000, "Great start.");
... (a lot more else if statements here)
else if (dest===134) {
window.setTimeout(alert, 3000,"You made it.");
if (window.setTimeout(confirm, 5000, "Game over. Do you want to play again?")==true) reset();
else console.log("Game over.")
}
答案 0 :(得分:0)
似乎你正在寻找这样的东西:
http://jsfiddle.net/InferOn/Lrwur3ek/
function message(dest) {
if(dest===5)
window.setTimeout(alert, 5000, "Great start.");
else if (dest===134) {
window.setTimeout(alert, 3000,"You made it.");
window.setTimeout(MyConfirm, 5000);
}
}
function MyConfirm(){
if(confirm("Game over. Do you want to play again?"))
reset();
else
noReset();
}
function reset(){alert('reset');}
function noReset(){alert('no reset');}
message(134);
btw我认为setTimeout不是管理事件的正确方法