example - jquery ui download
Detectar si un cuadro de diálogo de la interfaz de usuario jQuery está abierto (5)
El comentario de Nick Craver es el más simple para evitar el error que ocurre si el diálogo aún no se ha definido:
if ($(''#elem'').is('':visible'')) {
// do something
}
Sin embargo, primero debes establecer la visibilidad en tu CSS, usando simplemente:
#elem { display: none; }
Estoy usando un diálogo de jQuery UI. Si está abierto, quiero hacer una cosa. Si está cerrado, quiero hacer otro.
Mi pregunta es, ¿cómo puedo detectar si un cuadro de diálogo de jQuery UI está abierto o no?
El cuadro de diálogo jQuery tiene una propiedad isOpen
que se puede usar para verificar si un diálogo de jQuery está abierto o no.
Puede ver un ejemplo en este enlace: http://www.codegateway.com/2012/02/detect-if-jquery-dialog-box-is-open.html
En realidad, tienes que compararlo explícitamente con verdadero. Si el diálogo aún no existe, no devolverá falso (como era de esperar), devolverá un objeto DOM.
if ($(''#mydialog'').dialog(''isOpen'') === true) {
// true
} else {
// false
}
Si desea verificar si el diálogo está abierto en un elemento en particular, puede hacer esto:
if ($(''#elem'').closest(''.ui-dialog'').is('':visible'')) {
// do something
}
O si solo quieres comprobar si el elemento en sí mismo está visible, puedes hacer lo siguiente:
if ($(''#elem'').is('':visible'')) {
// do something
}
O...
if ($(''#elem:visible'').length) {
// do something
}
Si lees los docs.
$(''#mydialog'').dialog(''isOpen'')
Este método devuelve un booleano (verdadero o falso), no un objeto jQuery.