8372 votes

Tester si quelque chose est caché à l'aide de jQuery

En jQuery, il est possible d'activer / désactiver la visibilité d'un élément. Vous pouvez utiliser les fonctions .hide(), .show() ou .toggle().

À l'aide de jQuery, comment voulez-vous tester si un élément est visible ou caché?

10010voto

Tsvetomir Tsonev Points 42030

Aussi, la question se réfère à un seul élément, ce code pourrait être plus approprié:

// Checks for display:[none|block], ignores visible:[true|false]
$(element).is(":visible") 

Même que twernt de la suggestion, mais appliquée à un élément unique.

1574voto

twernt Points 7182

Vous pouvez utiliser l' hidden selector:

// Matches all elements that are hidden
$('element:hidden')

Et l' visible selector:

// Matches all elements that are visible
$('element:visible')

1053voto

Mote Points 2907
$(element).css('display') == 'none'

Les fonctions ne fonctionnent pas avec la visibilité d'un attribut.

570voto

aaronLile Points 1789

Aucune de ces réponses de l'adresse de ce que je comprends de la question, qui est ce que je cherchais, "comment puis-je gérer des éléments qui ont visibility: hidden?". Ni :visible ni :hidden va gérer cela, car ils sont à la recherche pour les afficher par la documentation. Aussi loin que je puisse déterminer, il n'y a pas de sélecteur pour gérer les CSS visibilité. Voici comment j'ai résolu (standard sélecteurs jQuery, il peut être plus courte, syntaxe):

$(".item").each(function() {
    if ($(this).css("visibility") == "hidden") {
        // handle non visible state
    } else {
        // handle visible state
    }
});

419voto

user574889 Points 871

De Comment puis-je déterminer l'état d'une bascule élément? :


Vous pouvez déterminer si un élément est effondré ou non en utilisant l' :visible et :hidden sélecteurs.

var isVisible = $('#myDiv').is(':visible');
var isHidden = $('#myDiv').is(':hidden');

Si vous êtes tout simplement en agissant sur un élément basé sur sa visibilité, il suffit d'inclure ":visible" ou "invisible" dans le sélecteur d'expression. Par exemple:

 $('#myDiv:visible').animate({left: '+=200px'}, 'slow');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X