Je suis un peu coincé ici avec mon script:
C'est une case à cocher filtrant tout .notme
images et masquer ses éléments de liste. Le problème est maintenant que je ne peux pas obtenir une fonction de rappel fonctionnelle pour le fadeToggle
. Il devrait se comporter comme ceci:
Si tous les enfants de
#list-team-single-container
sont "affichés aucun" - faites quelque chose.
$('#show-only-my-teams').change(function(){
$('.notme').each(function(){
$(this).parent().parent().fadeToggle('fast', function(){
});
});
});
if($('#list-team-single-container').children(':visible').length == 0) {
// action when all are hidden
}
Le :visible
Le sélecteur jQuery est peut-être ce que vous cherchez ...
De la description
Les éléments sont considérés comme visibles s'ils consomment de l'espace dans le document. Les éléments visibles ont une largeur ou une hauteur supérieure à zéro.
Les éléments avec visibilité: caché ou opacité: 0 sont considérés comme visibles, car ils consomment toujours de l'espace dans la mise en page. Lors des animations qui masquent un élément, l'élément est considéré comme visible jusqu'à la fin de l'animation. Lors des animations pour montrer un élément, l'élément est considéré comme visible au début de l'animation.
http://api.jquery.com/visible-selector/
$('#list-team-single-container').children(':visible');
Cette ligne de code renverra tous les éléments enfants de #list-team-single-container
visibles.
$('#list-team-single-container').children(':visible').length;
Cette ligne de code renverra le nombre d'éléments enfants de #list-team-single-container
visibles.
Il est difficile d'être précis sans voir votre balisage, mais j'imagine faire quelque chose comme ça:
var isVisible = 0;
$('.notme').each( function() {
if( $(this).is(":visible") {
isVisible++;
}
});
if ( isVisible == 0 )
// do something