jquery UI对话框 - 每当打开对话框时,请确保关闭所有其他对话框

时间:2010-11-01 00:45:33

标签: jquery jquery-ui jquery-ui-dialog

我有一个具有多个UI对话框的应用程序...我如何巧妙地确保您无法打开2个对话框。因此,每当您打开一个Dialog时,它都会关闭所有当前打开的UI对话框。

3 个答案:

答案 0 :(得分:8)

所有对话框都添加了ui-dialog-content类,因此您可以在打开对话框时执行此操作:

$(".ui-dialog-content").dialog("close");
$("#myDialog").dialog("open");

答案 1 :(得分:1)

如果你正在使用jquery-ui对话框,你应该可以使用类似于$(“。selectorClass”)。dialog(“destroy”)的东西来将所有对话框重置回其原始(隐藏)状态。 (确保当然放入你自己的选择器类/ ID!)

有关详细信息,请查看http://jqueryui.com/demos/dialog/

答案 2 :(得分:1)

假设你不想通过使每个对话框模态实际限制用户打开多个对话框的能力(因此在故意关闭对话框之前他们无法点击页面上的任何地方),我会说你想要将对话框缓存在变量中,然后在打开目标之前遍历此数组以关闭它们。如果不测试我在这里写的内容,请尝试以下几点:

var options = {
    autoOpen: false,
    modal: true,
    ...
};

var dlg = $('dialog-candidate-' + n);

$(dlg).each(function(i) {
    $(this).dialog(options);
    $('#dialog-trigger-' + n).click(function() {
        for(var i = 0; i<= dlg.length; i++) {
          dlg[0].dialog("close");
        }
        $(this).dialog("open");
        return false;
    });
    n++;
});