2010-07-19 15 views
28

Esto es lo que estoy tratando de lograr en última instancia:jQuery comprobación para ver si se muestra Div

//When the user clicks the liveshow button this happens 
    $(".liveshow-button").live('click', function() { 
     if ($(".liveshowDiv2").css('display') == 'none') { 
      $(".liveshowDiv2").fadeOut(ifadeOutSpeed, function() { 
       $('#wrapper-div').animate({ height: $('.liveshowDiv1').height() + "px" }, iresizeSpeed, function() { 
        $('.liveshowDiv1').fadeIn(ifadeInSpeed, function() { 
        }); 
       }); 
      }); 
     } 
     else { 
      alert('This never gets displayed'); 
      $(".liveshowDiv1").slideUp('fast'); 
     } 
    }); 

Básicamente quiero cambiar entre liveShowDiv1 que se muestra y se oculta cuando se hace clic en este botón. Pero como otras cosas en la página pueden hacer que liveShowDiv1 esté oculto, no puedo hacer una función de alternar para hacer esto. Tengo que verificar de alguna manera para ver si LiveShowDiv1 se muestra o no.

Cuando no aparece: display = ninguno

Cuando se está mostrando la pantalla no se encuentra en la etiqueta de estilo en absoluto

¿Cómo puedo saber en jQuery cuando aparece este div?

+5

http://stackoverflow.com/questions/178325/how-do-you-test-if-something-is-hidden-in -jquery – Adam

Respuesta

81

if ($(this).is(':visible')) debería funcionar para este show/hide relativamente simple.

+1

Juro que lo sabía en algún momento. Sorprendido, no pude encontrarlo en google. – Jason

14

En algún momento debe comprobar que div es bloque o ninguno. Podemos hacer esto muy fácilmente. Este es un código simple aquí id = "test" -> para el propósito de prueba si se utiliza class = "test" este caso es necesario actualizar el código Para la comprobación de bloque o visible luego usar esto para su selecto test es id

1. if ($('#test').is(':visible')) {} 

2. if ($('#test').css('display') == 'block'){} 

3. if ($('#test').not(':hidden')){} 

si su selector es class continuación

1. if ($('.test').is(':visible')) {} 

o

1. if ($(your_element).is(':visible')) {} 

misma otra

Para comprobar ninguna u ocultar a continuación, utilizar este código si su selector es id

1. if ($('#test').not(':visible')){} 

2. if (!$('#test').is(':visible')){} 

3. if ($('#test').css('display') == 'none'){} 

4. if ($('#test').is(':hidden')){} 

si su selector de clase a continuación, utilizar este

1. if ($('.test').not(':visible')){} 

o

1. if ($(your_element).not(':visible')){} 

espero que te ayudará

3

Puede probar esto:

$(your_element).is(":visible") 

Ejemplo;

if ($('#element_id').is(":visible")) { 
    // do something 
} 
0

Puede utilizar $(element).is(":visible") para comprobar si el elemento es visible

Cuestiones relacionadas