时间:2011-03-28 22:03:40

标签: jquery if-statement dialog

我注意到我可以从不同的按钮/链接打开多个标签。 :)

我想要做的是只有在没有打开其他对话框时才能打开对话框。

我可以使用if语句并检查每个附有对话框的id,但我的页面中有很多。

我需要一些表达王if (a dialog id open) {do not open $(this) dialog}open $(this)dialog only if no other dialog is open

3 个答案:

答案 0 :(得分:4)

您可以在对话框中使用isOpen方法检查它是否已打开。例如:

if(!$(".selector").dialog("isOpen")) {
    // the dialog .selector is closed, you can open another one
}

<强>更新

如果要在打开之前关闭任何其他打开的对话框,可以通过一个函数来路由所有对话框打开操作,该函数会在打开另一个之前记住要关闭的内容。

在此示例中,调用openDialog将关闭任何其他打开的对话框,然后再打开您指定的对话框,并且调用closeDialog将关闭当前活动的对话框。

function closeDialog() {
}

function openDialog(selector) {
    closeDialog();

    $(selector).dialog("open");
    closeDialog = function() { 
        $(selector).dialog("close");
    };
}

示例使用windowcloseDialog函数“污染”openDialog对象,但如果需要,可以对其进行适当的重构。

答案 1 :(得分:0)

如何简单地

if(!$('.ui-dialog').is(":visible")) {
//some stuff in here
}

似乎很容易做到这一点?

只是说......:)

答案 2 :(得分:0)

试试这个:

if(!$(“#dialog-Save”)。data(“dialog”)._ isOpen){

...

}