如何等待JsDialog回复?

时间:2015-10-17 08:56:58

标签: javascript jquery

我正在尝试使用JQuery dialog,实际上我没有问题。现在我想用alert confirmation替换JQuery Dialog Confirmation,问题在于,当我显示JQuery Dialog代码时,代码继续有效,并且不会等待JQuery Dialog响应。我正在尝试的是创建一个等待JQuery dialog结果的模式,然后继续执行代码。

按下按钮后触发的功能

function start(title, message, messageButtons)
{  
  //messageButtons => contains the buttons with the function see bottom

    if(confirm)
    {
        jQuery("body").append(
        "<div id='message_box' title='" + title + "'>" +
        "<p>" + message + "</p>" +
        "</div>"
        );    

        jQuery("#message_box").dialog({
            autoOpen: false,
            modal: true,
            resize: "auto",
            width: 400,
            height: "auto",
            resizable: false,
            buttons: messageButtons,
            closeOnEscape: true
            });
    }
    else
    {
        console.log("No response");
    }
}

消息按钮结构:

  var messageButtons = {};
  messageButtons['OK'] = function() 
  {
       confirm = true;
  };

  messageButtons[EALang['cancel']] = function() 
  {
       confirm = false;
       $('#message_box').dialog('close');
  };

JQuery Dialog显示正确但在浏览器控制台中我得到No response,然后用户从JQuery Dialog中选择答案。因此,主要问题是在JQuery Dialog出现后停止js代码,等待用户选择,然后继续上面的代码。你如何看到我在按钮功能中对confirm变量进行了增值,当用户按下相应的按钮并且这个工作正常时,会调用此函数。

1 个答案:

答案 0 :(得分:0)

您应该尝试使用回调来执行js.Dialog中特定点所需的任何代码,回调似乎相当不错,这里有一些信息:http://code.kolmio.com/jsdialog/Docs/Callbacks.html

此外,保存稍后要执行的代码的方法是设置超时:http://www.w3schools.com/jsref/met_win_settimeout.asp