Lors du masquage d'éléments avec affichage : aucun à l'aide de clics sur un bouton, les sélecteurs nième enfant prennent en compte à la fois les éléments visibles et masqués . Cela peut perturber les modèles de style destinés à différentes lignes.
Explication :
Le sélecteur CSS nth-child() fait correspondre les éléments en fonction de leur position parmi les frères et sœurs. Cependant, les éléments cachés restent dans le DOM même lors de l'utilisation de display: none, ce qui entraîne un comptage incorrect.
Solution :
Pour exclure les éléments cachés du nombre de nièmes enfants , vous devez les supprimer entièrement du DOM. Cependant, l'utilisation de la méthode Remove() empêche leur restauration ultérieure, ce qui interfère avec la fonctionnalité de basculement.
Approche alternative :
Utilisez plutôt la méthode detach() de jQuery, qui préserve les écouteurs d’événements et autres métadonnées. Voici comment :
var divs; $('.photos-board-item').each(function(i){ $(this).data('initial-index', i); }); $('.hide-others').on('click', function () { if(divs) { $(divs).appendTo('.row').each(function(){ var oldIndex = $(this).data('initial-index'); $('.photos-board-item').eq(oldIndex).before(this); }); divs = null; } else { divs = $('.css--all-photo').detach(); } });
Explication :
Ce code bascule la visibilité des divs sélectionnés tout en conservant le nombre correct de nièmes enfants :
Avantages :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!