【问题标题】:Close all open dialog boxes? (JQuery)关闭所有打开的对话框? (jQuery)
【发布时间】: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


【解决方案1】:

由于它们都继承同一个类,这是全选并关闭的最佳方法:

$(".ui-dialog-content").dialog("close");

【讨论】:

【解决方案2】:

您可以简单地尝试一下,因为它们都有 .ui-dialog-content 类,因此选择并关闭它们,如下所示:-

 $(".ui-dialog-content").dialog("close");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 2010-09-26
    相关资源
    最近更新 更多