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

4
使用 jQuery UI,我有一个选项卡插件,在选项卡1中加载了一个包含表格的页面,每行都有一个链接到对话框。
一切都正常工作,除了以下问题:
在对话框中有一个选项,可以从当前打开对话框的行中删除该行。确认后,删除行后,选项卡将刷新,并显示已删除相关行的新表格。
现在,问题是在关闭执行删除操作的对话框(无论是通过执行删除操作的JavaScript函数还是手动通过对话框上的关闭按钮)后,对话框仍保留已删除行的数据。
例如,
列表中列出了三行;
从第2行打开对话框;
删除;
通过JavaScript函数关闭对话框,选项卡刷新,现在只剩两行;
第二行中的对话框打开链接(曾经是第3行)与刚刚打开的对话框具有相同的对话框ID;
单击第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");

我们需要看到你打开对话框的代码。 - Nick Craver
@Nick Craver:jQuery("#dialog_7").dialog("open"); - stormdrain
必须有更多的内容,对话框中有标题和内容...需要代码来解决问题 :) - Nick Craver
@Nick Craver - 真的,这就是打开对话框所使用的所有代码...问题不在于打开它(在jquery-ui中打开它的选项非常少)。我添加了实例化代码,以防您正在寻找它。谢谢! - stormdrain
2个回答

1

事实证明,对话框没有任何进展。关闭后,现在有两个具有相同id的对话框。

在调用删除函数的成功处理程序中,我最终重置了对话框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");
},

是的,如果存在两个具有相同ID的对话框标签(这不是有效的HTML),则可能会出现此行为。 - 0x4a6f4672

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接