所以我的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"); } }
});
}
});
}
#history
它的设置在页面上显示如下:<div id="history"></div>
我第一次点击它 - 进行AJAX调用,打开对话框,一切看起来都很完美。
关闭对话框
第二次点击它 - 没有任何反应。它会调用AJAX和所有内容,但屏幕上不会显示任何对话框。
刷新页面
它再次回到第一次点击工作,就像上次一样。
这是一些奇怪的对话吗?
感谢。
答案 0 :(得分:2)
尝试将成功代码更改为:
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');
}
通过dialog('open')
调用,肯定会打开
答案 1 :(得分:0)
我认为这是因为在autoOpen
未在后续调用中触发时,对话框已经创建。尝试在ajax调用中添加$("#history").dialog("open")
,看看是否有帮助。
您可以添加一些优化,以确保不会两次调用原始对话框创建代码(某种布尔变量)
答案 2 :(得分:0)
你应该只调用一次来创建对话框
$("#history").dialog({
modal: true,
resizable: false,
title: "Valuation History",
width: 850,
height: 500,
autoOpen: true,
buttons: { "Close": function () { $(this).dialog("close"); } }
});
打开对话框电话$("#history").dialog("open");
我建议在首次加载autoOpen: false
页面时创建对话框并根据需要打开它们