Jquery UI Dialog Destroy事件是否也删除了html?

时间:2010-05-28 19:05:44

标签: jquery-ui

我有一个显示表单的对话框。当他们保存或关闭对话框时,我调用了jquery对话框destroy方法。

但是我不清楚它是否删除了html div。从描述中我不会这么认为

  

删除对话框功能   完全。这将返回   元素回到pre-init状态。

然而,当用firebug查看时,我看不到html容器,所以我不确定它是否被删除或是什么。我不确定是不是因为我在运行中为对话框创建div并使用jquery将其添加到页面中。

1 个答案:

答案 0 :(得分:4)

它不会破坏HTML,you can see a demo here。但是默认情况下隐藏容器(在那里留下display: none),所以你需要.show()在页面中再次看到它,如果这就是你的意思后。这是简单的演示测试代码:

<button>Create Dialog</button>
<div id="dialog">Test Content</div>

和jQuery:

$("button").click(function() {
  $("#dialog").dialog({
    buttons: { 'Destroy Me': function() { $(this).dialog('destroy').show(); } }
  });
});

运行此功能,您可以将元素切换为对话框,然后再返回。

但是,如果您想在创建对话框时确保对话框被销毁,只需提前销毁任何可能的副本。例如:

    //  destroy any previous dialog of same that may exist
    $(".ui-dialog").filter(function(i) { return $(this).children("#dialog").exist(); }).remove();
    $("#dialog").dialog({ 
        /* dialog options */ 
    });