jQuery détecter visible, mais les éléments cachés
Cela semble comme il devrait être assez facile, mais je ne peux pas trouver le bon sélecteur pour elle
Selon les docs (http://api.jquery.com/hidden-selector/ et http://api.jquery.com/visible-selector/)...
Éléments peut être considéré comme caché pour plusieurs raisons:
Un élément ancêtre est caché, de sorte que l'élément n'est pas affiché sur la page.
Ce que je veux à détecter est "cet élément est visible, mais est contenue dans un parent masqué". C'est à dire, si j'ai fait le parent visible, cet élément serait également visible.
OriginalL'auteur Paul | 2010-03-31
Vous devez vous connecter pour publier un commentaire.
Si ce est quelque chose que vous utilisez couramment, faire votre propre sélecteur 🙂 Voici un exemple:
Vous pouvez l'utiliser comme ceci, test de balisage:
Exemples d'utilisation:
Alternativement, vous pouvez utiliser le
.filtre()
fonction comme ceci:return $(a).is(':hidden') && $(a).css('display') != 'none' && $(a).css('visibility') == 'visible';
Bon point,
visible
choses n'est pas "caché" bien que, il n'continuent d'occuper l'espace sur la page. Je suppose que cela dépend si vous êtes à la recherche pour totalement caché des choses ou des choses qui prennent pas de place sur la page. Quelle que soit la définition que vous êtes après, utiliser cette approche pour vous.Génial! Juste la réponse que je voulais, et les premiers résultats sur Google. Je voudrais seulement ajouter de dire que je pense un plus beau nom du sélecteur serait ":invisible". Il est "visible" ... mais dansvisible.
OriginalL'auteur Nick Craver
jQuery a ce tout intégré dans nowdays
OriginalL'auteur root
Si c'est un élément spécifique que vous recherchez, alors vous pouvez vérifier qu'il est la propriété d'affichage
Si ce n'était pas un élément spécifique, alors vous pourriez trouver les nœuds parents qui sont cachés à l'aide de :caché puis utiliser une fonction personnalisée pour rechercher les nœuds du type que vous voulez.
E. g.
Si vous voulez nettoyer sélecteur, puis je pense que vous allez être hors de la chance que je ne pense pas que ce que vous voulez, c'est une partie de la CSS, afin de ne pas être là comme un sélecteur jQuery.
OriginalL'auteur Barney Scott
Je ne le pense pas juste un sélecteur, mais
doit retourner ce dont vous avez besoin. Si vous avez besoin de vérifier les ancêtres, et pas seulement celle du parent, vous pouvez simplement remplacer le
$(id).parent().is(':hidden')
partie avec une fonction de manière récursive jusqu'à l'ancêtre de la chaîne d''.ah, je vois, désolé. la mise à jour de réponse.
Mais ce n'est pas moi de savoir si l'élément est visible, il a juste dit que si le parent est visible, ce qui n'était pas tout à fait la question
eh bien, il retournera true si l'élément est visible et que le parent est caché. Et comme je l'ai dit, si vous avez besoin de savoir si l'un de ses autres ancêtres sont cachés, il vous suffit de changer le côté droit de la && d'une fonction récursive
OriginalL'auteur Paul Woolcock