2010-11-01 81 views

回答

1

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

欲了解更多信息,请http://jqueryui.com/demos/dialog/

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++; 
}); 
8

所有对话框获得ui-dialog-content类添加,所以你可以做到这一点打开你的对话框时:

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