2010-07-21 14 views
9

Ho degli elementi div # e se si fa clic su allora div # choice slideDown(). Se viene fatto nuovamente clic, le scelte div # devono essere fatte su slideUp(); Come posso verificare se le scelte sono già scadute o scadute? So che potrei memorizzare in una variabile e alternare il suo valore ogni volta che si fa clic su elementi div #, ma cosa succede se #choices è stato fatto scorrere in altri modi?jquery alterna slideUp/slideDown

risposta

15

Usa .slideToggle()

+0

non Lavoreranno da quando ha detto che la presentazione può essere effettuata da altri elementi. –

+2

+1. @ Kaaviar: in realtà, questo dovrebbe funzionare abbastanza bene perché 'slideToggle()' controllerà se l'elemento è attualmente nascosto o mostrato. –

+0

come far scorrere verso l'alto o verso il basso con slideToggle? – Smash

6

Come Marimuthu's answer punti fuori, è possibile utilizzare slideToggle() per scorrere verso l'alto se il div è già aperto, o verso il basso se è chiuso.

È inoltre possibile controllare la proprietà display per scoprire se è attualmente visibile o meno. Dai documenti jQuery per slideUp().

Quando l'altezza raggiunge 0, la proprietà dello stile di visualizzazione è impostata su none per garantire che l'elemento non influenzi più il layout della pagina.

Sapendo questo, si può controllare per vedere se è impostato su "none":

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

Prova questo -


HTML:

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


JQuery SCRIPT:

$('.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'); 
     } 
    }); 
});