捕获由setTimeout javascript触发的确认消息

时间:2014-08-16 16:30:02

标签: javascript settimeout alert confirm

我正在制作棋盘游戏,我有一个根据玩家目的地调用各种警报的功能。对于最终目的地,我正在尝试呼叫警报消息,然后呼叫确认消息,询问他们是否要再次播放。我想捕获确认响应并在单击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.")
}

1 个答案:

答案 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不是管理事件的正确方法