.dialog("close")和.dialog("destroy")之间的区别

zzl*_*ani 19 jquery jquery-ui

.dialog("close").dialog("destroy")jquery-ui有什么区别?

我有一个前面的开发人员使用的脚本,.dialog("destroy")但现在我将在关闭对话框后执行一些操作.我发现beforeclose这是用.dialog("close")而不是用.dialog("destroy").所以我已经改变从方法destroyclose使其工作.

那么,有什么,如果我使用我会想念.dialog("close").dialog("destroy")

PS:对话框使用自定义按钮关闭自身,并.dialog("close")在按钮的单击事件上调用

Aln*_*tak 28

close离开对话框配置,但不可见,所以你可以再次重新打开它.dialog('open').

destroy将完全取消配置对话框.它将删除添加到DOM的所有UI元素以及任何相关的事件处理程序.

destroy删除举行的元素内容的对话框(即调用元素.dialog上)


Bru*_*nis 8

请记住,如果您正在使用表单输入对话框,那么销毁它将不会删除您的输入,因此如果您使用:input伪选择器进行验证,则将"验证"您"销毁"的元素.这就是.remove()派上用场的地方.

您可以添加一个自定义关闭事件来销毁对话框并删除其中的任何表单以防止进一步验证它.

$dialog = $("#your_dialog_id");
$dialog.dialog('option', {
    title: "title",
    close: function (event, ui) {
        $dialog.find("form").remove();
        $dialog.dialog('destroy');
    }
});
Run Code Online (Sandbox Code Playgroud)


Pra*_*een 5

来自Docs:

破坏:

完全删除对话框功能.这将使元素返回到其初始化前状态.

关:

关闭对话框,可在需要时重新打开.