Bir jQuery UI iletişim kutusu kullanıyorum. Açıksa, bir şey yapmak istiyorum. Kapalıysa bir tane daha yapmak istiyorum.
Sorum şu, bir jQuery UI iletişim kutusunun açık olup olmadığını nasıl anlarım?
Bir jQuery UI iletişim kutusu kullanıyorum. Açıksa, bir şey yapmak istiyorum. Kapalıysa bir tane daha yapmak istiyorum.
Sorum şu, bir jQuery UI iletişim kutusunun açık olup olmadığını nasıl anlarım?
Yanıtlar:
Dokümanları okursanız .
$('#mydialog').dialog('isOpen')
Bu yöntem, bir jQuery nesnesi değil, bir Boolean (doğru veya yanlış) döndürür.
$("#mydialog").hasClass("ui-dialog-content")
. Stackoverflow.com/questions/29528706/… sayfasına
Aslında, bunu açıkça doğru ile karşılaştırmanız gerekir. İletişim kutusu henüz mevcut değilse, yanlış döndürmez (beklediğiniz gibi), bir DOM nesnesi döndürür.
if ($('#mydialog').dialog('isOpen') === true) {
// true
} else {
// false
}
İletişim kutusunun belirli bir öğede açılıp açılmadığını kontrol etmek istiyorsanız, bunu yapabilirsiniz:
if ($('#elem').closest('.ui-dialog').is(':visible')) {
// do something
}
Veya sadece öğenin kendisinin görünür olup olmadığını kontrol etmek istiyorsanız, şunları yapabilirsiniz:
if ($('#elem').is(':visible')) {
// do something
}
Veya...
if ($('#elem:visible').length) {
// do something
}
$dialog.hasClass('ui-dialog-content')
jQuery iletişim kutusu, isOpen
jQuery iletişim kutusunun açık olup olmadığını kontrol etmek için kullanılabilen bir özelliğe sahiptir .
Bu bağlantıda örnek görebilirsiniz: http://www.codegateway.com/2012/02/detect-if-jquery-dialog-box-is-open.html
Nick Craver'ın yorumu, diyalog henüz tanımlanmamışsa ortaya çıkan hatayı önlemek için en basit olanıdır:
if ($('#elem').is(':visible')) {
// do something
}
Öncelikle CSS'nizde görünürlüğü basitçe kullanarak ayarlamalısınız:
#elem { display: none; }