jQuery UI - une fonction d'échange qui masque et affiche les éléments par sélecteur

StackOverflow https://stackoverflow.com/questions/401056

  •  03-07-2019
  •  | 
  •  

Question

Préface: jQuery et jQuery UI sont inclus sur une page.

J'ai cette fonction définie:

    function swap(sel) {
        if (1 == 1) {
           $(sel).hide('drop',{direction:'left'});
        }
    }

Comment puis-je corriger la partie (1 == 1) pour vérifier si l'élément est déjà masqué, puis le ramener si c'est le cas? Je suis sûr que c'est facile, mais jQuery est nouveau pour moi.

Était-ce utile?

La solution

si vous n'aimez pas activer / désactiver , cela peut vous aider:

function swap(sel) {
  if($(sel).is(':visible')) {
    $(sel).hide('drop',{direction:'left'});
  } else {
    $(sel).show('drop',{direction:'left'});
  }
}

Autres conseils

Pourquoi n'utilisez-vous pas toggle () ?

Par exemple:

function swap(sel) {
  $(sel).toggle();
} 

Peut-être que $ (sel) .toggle (); est ce que vous cherchez? C’est le meilleur moyen de faire basculer la visibilité d’un élément.

Comme l'ont dit d'autres répondants, toggle () est la meilleure solution. Cependant, si pour une raison quelconque vous ne pouvez pas / ne voulez pas utiliser le bouton bascule, et si votre sélecteur est pour un seul élément:

function swap(sel) {
    if ($(sel).is(':visible')) {  // Is this element visible?
       $(sel).hide('drop',{direction:'left'});
    }
}

Mise en garde : la vérification: visible retournera un faux positif si l'élément ou l'un de ses parents est : hidden . Si cela est important pour vous, vous pouvez consulter cette solution qui tente de vérifier cela, aussi bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top