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

时间:2011-02-14 16:08:37

标签: jquery-ui

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

所以我做了这样的事情:

thisDialog.dialog({
    autoOpen:   true,
    close: function(event, ui) {
        thisDialog.dialog("destroy");
    }
});

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

样品: http://jsfiddle.net/ytWPV/1/

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

如果元素没有改变,你也可以尝试克隆元素,如:

$("#win2").clone().attr("id","random").dialog({
    autoOpen:    true,
    height:     60,
    width:         50,
    modal:         true,
    close: function(event, ui) {
        alert($(".hide").html())
        this.dialog("destroy");
    }
});

......原始代码来自你的例子。