JQuery对话框帮助

JQuery对话框帮助,jquery,html,jquery-dialog,Jquery,Html,Jquery Dialog,因此,我的UI上有一个按钮,用于调用此Javascript函数: function OpenHistory(transactionId, spanThatWasClicked) { $.ajax({ type: "POST", url: "<%= Url.Action("ViewHistory", "Indications") %>", data : { transactionId

因此,我的UI上有一个按钮,用于调用此Javascript函数:

function OpenHistory(transactionId, spanThatWasClicked)
    {   
        $.ajax({
            type: "POST",
            url: "<%= Url.Action("ViewHistory", "Indications") %>",
            data : { transactionId : transactionId },
            success: function(data) {
                $("#history").html(data);
                $("#history").dialog({
                    modal: true,
                    resizable: false,
                    title: "Valuation History",
                    width: 850,
                    height: 500,
                    autoOpen: true,
                    buttons: { "Close": function () { $(this).dialog("close"); } }
                });
            }
        });
    }
函数OpenHistory(transactionId,单击的跨度)
{   
$.ajax({
类型:“POST”,
url:“”,
数据:{transactionId:transactionId},
成功:功能(数据){
$(“#历史”).html(数据);
$(“#历史”)。对话框({
莫代尔:是的,
可调整大小:false,
标题:“估价历史”,
宽度:850,
身高:500,
自动打开:对,
按钮:{“关闭”:函数(){$(this).dialog(“关闭”);}
});
}
});
}
#history
它的设置在页面上就像这样:

我第一次点击它——调用AJAX,打开对话框,一切看起来都很完美

关闭对话框

           $("#history").dialog({
                modal: true,
                resizable: false,
                title: "Valuation History",
                width: 850,
                height: 500,
                autoOpen: true,
                buttons: { "Close": function () { $(this).dialog("close"); } }
            });
第二次点击时,什么也没发生。它进行AJAX调用和所有操作,但屏幕上没有显示任何对话框

刷新页面

它会像上次一样,只在第一次单击时再次工作

这是一种奇怪的对话吗


谢谢。

我想这是因为在后续调用中,
自动打开
未触发时,对话框已经创建。尝试在ajax调用中添加
$(“#history”)。对话框(“open”)
,看看这是否有帮助。
您可以添加一些优化,以确保不会两次调用原始对话框创建代码(某种布尔变量)

您应该只调用一次来创建对话框

           $("#history").dialog({
                modal: true,
                resizable: false,
                title: "Valuation History",
                width: 850,
                height: 500,
                autoOpen: true,
                buttons: { "Close": function () { $(this).dialog("close"); } }
            });
要打开对话框,请调用<代码>$(“#历史”)。对话框(“打开”)


我建议在页面首次加载
autoOpen:false
时创建对话框,并根据需要打开它们

尝试将成功代码更改为:

      success: function(data) {
            $("#history").html(data)
             .dialog({
                modal: true,
                resizable: false,
                title: "Valuation History",
                width: 850,
                height: 500,
                autoOpen: true,
                buttons: { "Close": function () { $(this).dialog("close"); } }
            }).dialog('open');
        }
这样,它将通过
对话框('open')
调用确保其打开