这是问题,我正在运行带有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>');
}

10-04 22:42
查看更多