我正在使用在ajax调用之前打开的JQuery对话框,并且在从ajax调用返回时,执行对话框('close')。下面的语句将忙碌的对话框打开为横幅(没有确定或取消选项):
$('.updateActionsTasks').live('click', function ()
{$('#modalBusy').html('<span>Busy...Please Wait.</span>').dialog({ dialogClass: 'no-close', resizable: false, width: 100, height: 100, modal: true, title: 'Busy' });
More code goes here ...
//Ajax function call goes here
但是,close方法只能正常工作一次。再次执行单击后,对话框将打开,但永远不会关闭。标记为“COMM”的行会执行,但不会在第二次执行时关闭对话框。
function ActionWorklistItem(serviceUrl, worklistActionItems, actionName, ActiveTab) {
$.ajax({
type: "GET",
url: serviceUrl,
dataType: ($.browser.msie) ? "text" : "xml",
success: function (data) {
var xml;
if (typeof data == "string") {
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.loadXML(data);
} else {
xml = data;
}
var xmlText = $(xml).text();
xmlObj = $.parseXML(xmlText);
if ($(xmlObj).find('IsSuccess').text() == 'true') {
$('#modalBusy').dialog('close'); //COMM: This always executes
__doPostBack($('.upWorklistCtrlID').val(), ActiveTab);
} else {
$('#modalBusy').dialog('close');
//Create error msg dialog }
},
error: function (xhr, ajaxOptions, thrownError) {
$('#modalBusy').dialog('close');
//Create error msg dialog
}
});
答案 0 :(得分:1)
不是每次单击都初始化对话框,而是初始化一次,然后在单击链接时打开它:
$('#modalBusy').html('<span>Busy...Please Wait.</span>').dialog({ autoOpen : false, dialogClass: 'no-close', resizable: false, width: 100, height: 100, modal: true, title: 'Busy' });
$('.updateActionsTasks').live('click', function () {
$('#modalBusy').dialog('open');
autoOpen : false
选项会使对话框在初始化时不会打开。
答案 1 :(得分:0)
以下线似乎已经成功了。
$('#modalBusy').dialog('destroy').remove();