2011-03-28 6 views
2

다른 버튼/링크에서 여러 탭을 열 수 있다는 것을 알았습니다. :)Jquery에서 여러 개의 대화 상자가 열려 있는지 확인하는 방법은 무엇입니까?

내가하고 싶은 것은 다른 대화 상자가 열리지 않는 경우에만 대화 상자를 열 수 있다는 것입니다.

if 문을 사용하여 대화 상자가 연결된 각 ID를 확인 할 수 있지만 내 페이지에는 해당 문구가 많이 있습니다.

if (a dialog id open) {do not open $(this) dialog} 또는 open $(this)dialog only if no other dialog is open이라는 표현의 왕이 필요합니다.

+0

어떤 대화를 사용 하시나요? jquery? – amosrivera

답변

4

대화 상자에서 isOpen 메서드를 사용하여 열려 있는지 여부를 확인할 수 있습니다. 예를 들면 :

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

업데이트 :

하나를 열기 전에 열려있는 다른 모든 대화 상자를 닫습니다하려면, 당신이 길 수있는 또 다른를 열기 전에 닫습니다 무엇을 기억하는 기능을 통해 모든 대화 열려있는 작업. 사용자가 지정하는 하나를 개방하고, 현재 활성화 된 대화 상자를 닫습니다 closeDialog를 호출하기 전에 열려있는 다른 모든 대화 상자를 닫습니다 openDialog를 호출이 예에서

.

function closeDialog() { 
} 

function openDialog(selector) { 
    closeDialog(); 

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

예는 closeDialogopenDialog 기능과 window 객체를 "오염"하지만, 당신이 원하는 경우 적절하게 그 리팩토링 할 수 있습니다.

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

단지에 대해 상당히 쉽게 트릭을 할 것 같은데 어떻게

+0

응답, 주셔서 감사하지만 만약 내가 10 대화 상자가 있다면, .selector1 및 .selector2 및 .selector3 및 .selector4 .... 확인하고 그 다음에 모두 열고 닫을 필요가 하나를 열어야합니까? ?? – Patrioticcow

+0

@Patrioticcow : 업데이트 : – Jon

+0

확인을 확인의이 실제적인 보자 : 을 내가 가지고이 : '$ ("#의 EDIT1") .live ('클릭', 기능() { $ ("#의 edit_dialog1") .dialog ("open"); \t \t \t false를 반환; \t \t}); \t \t $ ("#의 EDIT2") .live (함수를 "클릭"() { $ ("#의 edit_dialog2") .dialog ("개방"); 거짓 \t \t \t 반환; \t \t}); \t \t $ ("# edit3").살 (함수를 "클릭"() { $ ("#의 edit_dialog3") .dialog) ("개방"; \t \t \t 반환 거짓; \t \t});' 지금 내가이 모든 대화 상자를 설정해야 'closeDialog()'함수에서 닫혀 야한다. 그리고'openDialog()'에서 그것들을 호출하시오 ?? – Patrioticcow

0

?

그냥 :)

0

이 시도 ... 말 :

경우 {

($ ("# 대화-저장") 데이터 ("대화") ._ ISOPEN!.).

}

관련 문제