jqueryUI销毁对话框而不删除原始元素?

Inc*_*ito 6 jquery-ui

我正在使用jQueryUI创建一个对话框,我希望删除对象对象时将其销毁.

所以我做了这样的事情:

thisDialog.dialog({
    autoOpen:   true,
    close: function(event, ui) {
        thisDialog.dialog("destroy");
    }
});
Run Code Online (Sandbox Code Playgroud)

我想要做的是保持thisDialog附加到的元素的存在,但只是破坏.dialog()附加到它的jQueryUI 对象,而不是更改我的DOM.

示例:http: //jsfiddle.net/ytWPV/1/

更新:
这可能是jQueryUI的错误/问题?如果有人能证明这一点,我也会接受这个答案

fdf*_*rye 1

我不确定你想用“摧毁”和“关闭”来完成什么,但我假设你有充分的理由。

如果您可以成功关闭对话框(本质上将代表对话框的整个 DIV 设置为与 display:none 等效的 CSS),但想要更进一步并从 DOM 中更永久地删除 html,我会在关闭中添加一些逻辑函数将使用选择器(任何选择器就足够了)来查找对话框最顶层的 DIV,然后手动将该 DIV 的 .html() 设置为空字符串。这基本上会清除内部 HTML,只留下曾经充当对话框的原始内容......

  • 用户,事​​实证明你是对的。它确实将元素放回到 DOM 中,或多或少与元素转换到对话框之前一样。然而问题似乎是,它不会将元素返回到 DOM 中的适当位置(在您的情况下,在用“隐藏”类装饰的 DIV 中)。如果您在调用 destroy 后手动检查 DOM,您会发现它仍然存在,只是不在最初的位置。另请参阅此错误帖子:http://bugs.jqueryui.com/ticket/4980 (2认同)