pantalla div si bloque jquery

2 minutos de lectura

Estoy tratando de averiguar si una pantalla de estilo div está bloqueada y luego hago algo aquí, por ejemplo.

esto es solo una suposición, estoy tratando de hacerlo en jquery

 if("#toshow":"display" == "block"){

 }else{

 }

Así que quieres distinguir entre display: block y display: none ? Si es así, puedes usar mejor el is() función en combinación con el :visible seleccionador para esto:

if ($('#toshow').is(':visible')) {

} else {

}

Esto funciona independientemente de si usó display: blocko display: inlineo display: inline-block.

  • @Dustin: No estoy seguro de por qué estás publicando un comentario como ese, mientras que esto es muy simple de experimentar por ti mismo. Si tiene un problema con este caso específico, se debe a otra parte.

    – BalusC

    28 de abril de 2013 a las 19:02


  • Bien, pongámoslo de esta manera. Esto funcionará si desea saber si el div está actualmente visible. Esto no funcionará si desea saber si el div es un bloque (la pregunta original, que también me llevó a esta pregunta de stackoverflow de una búsqueda en Google). En mi caso, quería saber si un div (actualmente oculto) iba a estar oculto cuando revelé el div principal. jsfiddle.net/ejVvu/1 como puede ver, esta respuesta no funcionará para verificar si un div tiene un atributo de bloque (la pregunta original). Entonces, +1 para una solución “mejor” para la visibilidad actual, pero no la respuesta a la pregunta.

    –Dustin Graham

    29/04/2013 a las 20:00

  • @Dustin: la respuesta acaba de responder lo que OP Realmente necesario. Ver también meta.stackexchange.com/questions/66377/cuál-es-el-problema-xy

    – BalusC

    29/04/2013 a las 20:10


  • Su punto es válido, no estoy seguro de cuál es el enfoque correcto aquí, ya que la forma en que el OP formuló su pregunta fue exactamente lo que necesitaba saber, que Brian respondió. Sin embargo, con la filosofía del problema XY y el hecho de que el ID de div del OP era #toshow, es posible que tenga razón al inferir que en realidad necesitaba una forma de determinar si algo era visible en ese momento. Tal vez una solicitud para aclarar la pregunta, o una respuesta ampliada para incluir una respuesta directa y una alternativa de “lo que realmente podría necesitar es…”. De todos modos, espero que mi violín ayude a los usuarios que estaban en mi situación. TY para el enlace XY

    –Dustin Graham

    29/04/2013 a las 20:39

Necesitas usar el css función.

if($("#toshow").css("display") == "block"){

}else{

}

$(document).ready(function(){
    if ($('#toshow').css('display') == 'block') {
        // Do something.
    } else {
        // Do something else.
    }
});

Debería hacer el truco.

no olvides tu :visible selector.

if ($("#toshow:visible").length) {
  // it's visible
} else {
  // it's not visible
}

Avatar de usuario de Hugo Matos de Souza
Hugo Matos de Souza

Esta opción funcionó perfectamente. Soy brasileño y tuve que traducir el texto, pero cuando vi el código inmediatamente vi que era la opción correcta.

function reversoObjeto() {
  $('#janela').fadeToggle(500, function(e) {
    if ($("#janela").css("display") == "none") {
      alert("Janela Apagou!");
    } else {
      alert("Janela Acendeu!");
    }
  })
}

¿Ha sido útil esta solución?