jQuery UI对话框关闭不清除对话框

时间:2010-07-22 15:56:02

标签: jquery jquery-ui jquery-ui-dialog

使用jQuery UI,我有一个标签插件,在标签1中加载了一个包含表格的页面,每行都有一个指向对话框的链接。

一切正常,请保存以下内容:

在对话框中,可以选择删除打开当前对话框的行。确认并删除行后,将刷新选项卡并显示新表,并删除相关行。

现在,问题是关闭我删除的对话框(通过执行删除的JavaScript函数,或通过对话框上的关闭按钮手动完成)后,对话框将保留已删除行中的数据。

例如,

列出了三行;

从第2行打开对话框;

删除;

从JavaScript函数关闭对话框,选项卡刷新,现在有两行;

第二行(以前是第3行)中的对话框打开链接与刚打开的对话框ID相同;

单击第2行中的打开对话框链接;

对话框显示与以前相同 - 对于旧行2,而不是当前行2;

关闭对话框;

单击第2行中的打开对话框链接;

正确显示 - 来自当前第2行的数据;

我不知道这是否有意义......这是发生了什么的图片:

Enter image description here

因此,被删除的行下面的行继承了对话框ID,单击时显示旧对话框。如果关闭,然后重新打开,它会在对话框中显示正确的内容。

我目前正在使用dialog("close")并尝试dialog("destroy"),但这完全杀了它,下面的行不会打开任何内容......

如何解决此问题?


对话实例化代码:

<script>
    <?php
        $ee=1;
        foreach($bugs->result() as $rr){
            echo "jQuery(\"#dialog_$ee\").dialog({autoOpen:false,width:850,height:550});\n";
            $ee++;
    }?>
</script>

然后打开对话框:

jQuery("#dialog_<?=$i?>").dialog("open");

2 个答案:

答案 0 :(得分:1)

事实证明对话框无处可去。关闭它之后,现在有两个具有相同id的对话框。

在调用的delete函数的成功处理程序中,我最终重置了对话框id,然后在其上调用dialog(“destroy”):

onSuccess: function(transport){
    var tabs = jQuery('#tabs').tabs();
    tabs.tabs( 'url', 0,'/bugs/loadTab1');
    tabs.tabs('load', 0);
    closeDialog(dialogID);
    jQuery("#"+dialogID).attr("id",dialogID+"_old");
    jQuery("#"+dialogID+"_old").dialog("destroy");
},

答案 1 :(得分:0)

博客文章 Creating dialogs on demand 中有一个答案。