jquery bascule slideUp / slideDown

J’ai un div # items et s’il est cliqué, alors div # choices slideDown (). Si on clique de nouveau dessus, div # choice devrait alors slideUp (); Comment puis-je tester si les choix sont déjà bas ou plus élevés? Je sais que je pourrais stocker dans une variable et basculer sa valeur lorsque des éléments div # sont cliqués, mais que se passe-t-il si #choices a été glissé vers le bas par d’autres moyens?

Utilisez .slideToggle ()

Comme le souligne la réponse de Marimuthu , vous pouvez utiliser slideToggle () pour vous déplacer vers le haut si la div est déjà ouverte ou vers le bas si elle est fermée.

Vous pouvez également vérifier la propriété display pour savoir si elle est actuellement visible ou non. À partir de la documentation jQuery pour slideUp () .

Une fois que la hauteur atteint 0, la propriété de style d’affichage est définie sur none pour garantir que l’élément n’affecte plus la présentation de la page.

Sachant cela, vous pouvez vérifier s’il est réglé sur “none”:

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

Essaye ça –

HTML:

 Show  

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