jQuery UI 对话框关闭并没有清除对话框

标签 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");

最佳答案

事实证明该对话框没有去任何地方。关闭它后,现在有两个具有相同 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");
},

关于jQuery UI 对话框关闭并没有清除对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3310803/

相关文章:

javascript - 如何防止尾随内容与我的选项卡内容重叠?

javascript - jquery 对话框需要点击两次才能关闭

javascript - 组合多个 jQuery 对话框选择器

jquery - Asp.Net MVC3 具有必需的字段验证

javascript - 函数执行完成后如何调用函数? - Javascript

jquery - 如何在jquery(2015-08-21T12 :35:01. 5588081Z)中将以下内容转换成标准时间格式?

javascript - Chrome 扩展 : accessing the DOM of the popup. html 并让 jQuery 工作

javascript - 全部折叠并默认打开第一个 Accordion

jquery - 通过 jquery 将 div 从其他 div 后面滑动

javascript - jQuery 对话框模式在单击时被调用两次