我正在尝试一个接一个地打开几个对话框。(第一个对话框打开并发出ajax请求。如果成功显示第二个对话框)问题是,第一个对话框在屏幕中间正确打开但是当我关闭它第二个对话框打开页面顶部不在中心。
我使用了所有jquery ui依赖项,因为我使用了构建页面并选择了所有内容。
项目很大,所以我创建了一些与我正在使用的代码相近的补码。
首先,打开对话框
$(".btblock").click(function (event) {
event.preventDefault();
var btn = $(this);
var id= btn.attr('id');
$("#divDialog1").dialog({
dialogClass: 'notitle',
modal: true,
zIndex: 10002,
resizable: false,
closeOnEscape: false,
open: function (event, ui) {
$(".ui-dialog-titlebar-close").hide();
},
buttons: {
"Ok": function () {
//Here I call another function which is an ajax call.
//when the ajax call is completed (success or not) I call
//another function which creates the second dialog with results
$(this).dialog("close");
}
}
});
});
//Function called after ajax call. creats a result dialog
//This Dialog doesn't show in the middle of the screen
function customAlertMessage(title, message) {
var div = '<div style="text-align:center;" title="' + title + '">' + message + '</div>'
$(div).dialog({
resizable: false,
dialogClass: 'notitle',
modal: true,
buttons: {
"Ok": function () {
$(this).dialog("close");
}
}
});
}
答案 0 :(得分:0)
结束了解决这个问题。
在我的情况下,我相信我做错了是我在不关闭之前的对话框的情况下打开了不同的对话框。我这样做之后问题就解决了。不确定为什么会发生这种情况。欢迎任何其他解释或解决方案。
$(".btblock").click(function (event) {
event.preventDefault();
var btn = $(this);
var id= btn.attr('id');
$("#divDialog1").dialog({
dialogClass: 'notitle',
modal: true,
zIndex: 10002,
resizable: false,
closeOnEscape: false,
open: function (event, ui) {
$(".ui-dialog-titlebar-close").hide();
},
buttons: {
"Ok": function () {
//Close First!
$(this).dialog("close");
//Than call functions that open others dialogs
}
}
});
});