jquery-ui中的.dialog("close")
和.dialog("destroy")
有什么不同?
我有一个脚本,之前的开发人员在其中使用了.dialog("destroy")
,但现在对话框关闭后,我必须执行一些操作。我发现了使用.dialog("close")
而不是.dialog("destroy")
调用的beforeclose
。因此,我必须将方法从destroy
更改为close
才能使其工作。
那么,如果我使用.dialog("close")
而不是.dialog("destroy")
,我会错过什么吗?
PS:对话框使用自定义按钮来关闭自身,并且在按钮的单击事件上调用.dialog("close")
发布于 2013-08-05 18:19:05
close
将对话框保留为已配置,但不可见,因此您可以使用.dialog('open')
重新打开它。
destroy
将完全取消对话框的配置。它将删除所有添加到DOM中的UI元素,以及任何相关的事件处理程序。
destroy
不会删除保存对话框内容的元素(即调用.dialog
的元素)
发布于 2014-08-12 17:29:59
请记住,如果您使用的是表单输入对话框,那么销毁它并不会删除您的输入,所以如果您使用: input伪选择器进行验证,那么您“销毁”的元素也会被验证。这就是.remove()派上用场的地方。
您可以添加一个自定义的close事件,该事件将销毁您的对话框并移除其中的任何窗体,以阻止对其进行进一步验证。
$dialog = $("#your_dialog_id");
$dialog.dialog('option', {
title: "title",
close: function (event, ui) {
$dialog.find("form").remove();
$dialog.dialog('destroy');
}
});
发布于 2013-08-05 18:20:52
来自
销毁:
完全删除对话框功能。这将使元素返回到其初始化前的状态。
close:
关闭对话框,该对话框可在需要时重新打开。
https://stackoverflow.com/questions/18055724
复制相似问题