jQuery UI对话框不显示不同的执行流程

时间:2014-01-22 10:10:40

标签: jquery-ui

我对jquery ui对话框有一个奇怪的问题。 我有一个渲染页面可以显示2种类型的对话框(确认,错误)。

如果我开始弹出错误对话框,然后确认,它们按预期工作。

但如果我开始弹出确认,那么错误,错误的对话框没有出现。 我调试javascript但没有错误。

我欢迎任何回复如何进行故障排除/调试。

对话框的javascript:

function ConfirmationDialog(strMsg, actionYes) {
    var dlg = $("#ConfirmationDialog");
    dlg.html(strMsg);
    dlg.dialog({
        resizable: false,
        height: 300,
        width: 600,
        modal: true,
        buttons: {
            Yes: function () {
                $(this).dialog("close");
                if (actionYes != null) actionYes();
            },
            No: function () {
                $(this).dialog("close");
            }
        }
    }).parent().addClass("ui-state-highlight");
}

function ErrorDialog(strMsg) {
    var dlg = $("#ErrorDialog");
    dlg.html(strMsg);
    dlg.dialog({
        resizable: false,
        height: 300,
        width: 600,
        modal: true,
        buttons: {
            Close: function () {
                $(this).dialog("close");
            }
        }
    }).parent().addClass("ui-state-error");
}

html:

<script src="/xx/Scripts/jquery-1.8.2.js"></script>
<script src="/xx/Scripts/jquery-ui-1.8.24.js"></script>
<script src="/xx/Scripts/jquery.unobtrusive-ajax.js"></script>

<div id="ConfirmationDialog" title="Confirmation" />
<div id="ErrorDialog" title="Error" />

<a href="javascript:ErrorDialog('err');">Err</a>
<a href="javascript:ConfirmationDialog('cc',null);">Confirmation</a>

1 个答案:

答案 0 :(得分:0)

我尝试了它并且在我将结束标记添加到div之后它起作用了:

<div id="ConfirmationDialog" title="Confirmation"></div>
<div id="ErrorDialog" title="Error"></div>

我还有一个关于你的javascript的建议。因为您选择了带

的对话框
var dlg = $("#ErrorDialog");

你不必做

$(this).dialog("close");

这将不必要地创建另一个对象。只是做

dlg.dialog("close");