2012-02-03 16 views
17

Herhangi bir jquery iletişim kutusunun (birden çok var) açık olup olmadığını belirlemek için genel bir çözüm bulmak. Denemeden:Herhangi bir jquery iletişim kutusunun açık olması nasıl olur?

Herhangi bir başarı olmadan. Çalışmak için ".ui-dialog-content" çalışmasını bekledim, çünkü bu seçici ile herhangi bir açık diyaloğu kapatabiliyorum, ama öyle değil.

cevap

28

Eğer bu bir sen DOM Dialog diyoruz her durumda, çalışacak

if($(".ui-dialog").is(":visible")){ 
//dialog is open 
} 
+2

bunu denedi - işe yarıyor – Alnitak

+0

Bu sayfadaki stillerde bir şey çok garip olmalı. Bir iletişim kutusu açıkken birleşik konsol konsolunda: $ ('. Ui-dialog'). ("Görünür") == false – lamont

+1

@lamont - '' görünür '' ifadesinin önündeki sütuna dikkat edin - bu bir psuedo seçicidür. – Alnitak

0

CSS ile görüntülenip görüntülenmediğini kontrol edin. Doğru yaklaşım olup olmadığından emin değilim, ancak çalışacağından şüpheleniyorum.

$(".ui-dialog").css('display') != "none" 
+0

DÜZENLEME:.! aslında $ ("ui-iletişim-content") css ('display') = "none" iletişim kapalıysa yanlış pozitif verir ama gerçek çıkmıyor açık olduğunda, ".ui-dialog" her zaman yanlış görünüyor. – lamont

+0

>>> $ (". Ui-dialog-content") css ('ekran') "blok" >>> $ (". Ui iletişim") css ('display') "yok" İletişim durumundan bağımsız olarak, en az firefox'ta . – lamont

+0

evet karanlıkta bir atıştı, ben ui-dialog kullanmadım, genel bilgimden çıkıyordum, cevabını bulmuş gibiydin gibi görünüyor, bu harika! – thenetimp

2

UI dailog dailog açık ise doğru döndüren bir yöntem isOpen sahiptir. İletişim kutusunu açmış olan eleman üzerinde arayın.

$('.ui-dialog-content').dialog("isOpen"); 

refrence: http://jqueryui.com/demos/dialog/#method-isOpen

+1

soruma bakın - $ ('. Ui-dialog-content') diyalog penceresi ("isOpen") bir diyalog açıkken false değerini döndürür. – lamont

+1

bunu denedi - yalnızca sınıftaki ilk iletişim kutusu için çalışır. _any_ iletişim kutusunu kontrol etmek için '.each()' ı kullanmanız gerekir. – Alnitak

+0

Sanırım her bir döngüyü dahili olarak çalıştırmak için iletişim kutusuyla ilgilenmeliydim. – ShankarSangoli

-1
$('html').click(function() { 
    x++; 
    if(x==2){ 
    $(".ui-dialog-titlebar-close").trigger("click"); 
    x=0; 
    } 
    }); 

deneyebilirsiniz.

+0

qtn'ye cevap vermiyor – PapillonUK

2

API belgelerine göre, iletişim açık olup olmadığını belirlemek için

$(".selector").dialog("isOpen") 

kullanmalıdır. Bu işlev bir boole döndürür. Örneğin ,

if($("selector").dialog("isOpen")===true){ 
    /*do stuff when dialog is open*/ 
} else { 
    /*do stuff when dialog is closed*/ 
}; 
İlgili konular