2010-07-21 23 views
9

Tengo un elemento div # y si se hace clic en él, div # options slideDown(). Si se vuelve a hacer clic, las opciones div # deben deslizarse hacia arriba(); ¿Cómo puedo probar si las opciones ya están caídas o no? Sé que podría almacenar en una variable y alternar su valor cada vez que se hace clic en div # items, pero ¿qué ocurre si #choices ha sido deslizado por otros medios?jquery alternar slideUp/slideDown

Respuesta

15

Uso .slideToggle()

+0

no funcionará ya que él dijo que la diapositiva puede ser realizada por otros elementos. –

+2

+1. @Kaaviar: en realidad, esto debería funcionar bastante bien porque 'slideToggle()' verificará si el elemento está actualmente oculto o se muestra. –

+0

cómo deslizar hacia arriba o hacia abajo con slideToggle? – Smash

6

Como Marimuthu's answer puntos out, se puede utilizar slideToggle() para deslizarse hacia arriba si el div ya está abierto, o hacia abajo si está cerrado.

También puede consultar la propiedad display para averiguar si actualmente está visible o no. De los documentos jQuery para slideUp().

Una vez que la altura llega a 0, la propiedad de estilo de visualización se establece en none para garantizar que el elemento ya no afecte al diseño de la página.

Sabiendo esto, usted puede comprobar para ver si se ajusta a "ninguno":

var $choices = $('div#choices'); 
if ($choices.css("display") == "none") 
    $choices.slideDown(); 
else 
    $choices.slideUp(); 
0

Prueba esto -


HTML:

<a href="#demo" class="nav-toggle">Show</a> 
<div id="demo" style="display:none;"> 
<p>short info</p> 
</div> 


JQUERY GUIÓN:

$('.nav-toggle').click(function(){ 
    var content_id = $(this).attr('href');    
    var toggle_switch = $(this); 
    $(content_id).toggle(function(){ 
    if($(this).css('display')=='none'){ 
      toggle_switch.html('Show'); 
    }else{ 
     toggle_switch.html('Hide'); 
     } 
    }); 
}); 
Cuestiones relacionadas