在升级到最新的 jQuery 库之前,我使用此代码来关闭所有打开的对话框。现在这段代码只会抛出一个错误。
$(".dialogs:ui-dialog").each(function () {
if ($(this).data('dialog').isOpen()) {
$(this).dialog('close');
};
});
我需要完成的是,当 jQuery 对话框打开并且用户单击菜单项打开另一个对话框时,我需要确保在打开新对话框之前关闭所有其他对话框。
用于完成此任务的新代码是什么?
最佳答案
您可以简单地使用
$( ".dialogs" ).dialog( "close" );
如果您检查 dialog source code您会发现关闭已关闭的对话框没有任何效果,因此您可以安全地使用它
close: function( event ) {
var that = this;
if ( !this._isOpen || this._trigger( "beforeClose", event ) === false ) {
return;
}
...
}
如果您出于任何原因想让您的逻辑与您所拥有的逻辑相似,您可以使用此
$(".dialogs").each(function () {
var $dialog = $(this);
if ($dialog.dialog('isOpen')) {
$dialog.dialog('close');
};
});
关于javascript - 如何关闭所有打开的 JQuery 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17621374/