【发布时间】:2012-11-27 15:10:31
【问题描述】:
如何关闭jQuery 中所有打开的dialog 框?
接下来的情况是:我有一个没有对话框的简单页面。它有一些按钮打开它拥有对话框。
当我点击一个按钮时,我需要关闭所有打开的对话框。
这里是 HTML:
<div id="buttons">
<a href="#" id="btn_1">Button 1</a>
<a href="#" id="btn_2">Button 2</a>
<a href="#" id="btn_3">Button 3</a>
</div>
<div id="dialog_1" class="dialogbox">...</div>
<div id="dialog_2" class="dialogbox">...</div>
<div id="dialog_3" class="dialogbox">...</div>
这里是 jQuery:
$(function() {
$('#buttons').find('a').click(function() {
// close all dialogs
$('.dialogbox').dialog("close");
// find out clicked id and open dialog
var nr = this.id.split("_")[1];
$('#dialog_'+nr).dialog();
});
});
Chrome 说:Uncaught Error: cannot call methods on dialog prior initialization; attempted to call method 'close'。
我试图检查$('.dialogbox').dialog('isOpen'),但结果相同。
如何关闭所有对话框?
【问题讨论】:
-
您必须先初始化对话框,然后才能调用此函数 $().ready(function() {$('.dialogbox').dialog({})})
标签: javascript jquery jquery-ui jquery-ui-dialog