在升级到jQuery的最新库之前,我使用此代码关闭所有打开的对话框。现在这段代码只会引发错误。
$(".dialogs:ui-dialog").each(function () {
if ($(this).data('dialog').isOpen()) {
$(this).dialog('close');
};
});
我需要完成的是当jQuery对话框打开并且用户单击菜单项以打开另一个对话框时,我需要确保在打开新对话框之前关闭所有其他对话框。
用于完成此任务的新代码是什么?
答案 0 :(得分:3)
你可以简单地使用
$( ".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');
};
});