这是问题,我正在运行带有jquery插件的完整ajax webapp,但是一旦关闭对话框,就无法重新初始化。
function edit()
{
$("#dialog").dialog({
modal: true,
resizable: false,
autoOpen: false,
buttons: {
'Save' : function(){
// Some function here.
},
'Close' : function(){
$("#dialog").dialog('destroy');
}
}
});
}
该对话框由一个按钮调用,它所要做的只是调用上述函数edit()
我尝试了以下方法:
方案1:
我单击按钮进行编辑,然后我决定使用关闭按钮(而不是顶部的x按钮)关闭弹出窗口,对话框关闭。当我再次单击按钮时,对话框将打开,但是现在当我尝试关闭时必须单击两次,因为两个对话框实例显然正在运行。
方案2:
当我发现要避免两个实例时,我必须使用
$("#dialog").dialog('close').remove();
代替
$("#dialog").dialog('close');
这解决了多实例问题,但是现在除非刷新页面,否则我将无法打开对话框,有关如何解决的任何想法?
最佳答案
在此,您可以使用id对话框删除元素:
$("#dialog").dialog('close').remove();
在调用.dialog()之前,应确保在其编辑函数中#dialog存在。例如:
if( ! $('#dialog').length ) {
$('body').append('<div id="dialog"></div>');
}