jQuery est maintenant à la version 1.4! En plus de plusieurs nouvelles fonctionnalités et la réécriture «habituel» du code, toute la documentation a été révisée dans un cadre vraiment plus lisible qu'avant. impostato a _blank ! Mais nous voyons la question de ce post, problème: ajouter, en utilisant jQuery, une classe de toutes les balises a qui ont l'attribut target fixé à _blank !
Ce que nous avions déjà vu dans Très court extrait: auto jQuery cible lien blanc . Le problème est que, souvent, les images ont un lien dans une nouvelle fenêtre et ajouter une autre image à la carte n'est pas très agréable. Pour ce faire sur ce lien particulier n'est pas appliqué à la classe il ya deux façons:
Ajouter une classe
, non vogliamo mostrino l'immagine. La première méthode, qui est vrai avec n'importe quel lien, est d'ajouter une classe, par exemple noexternal , à tous ces liens qui, en dépit contenant l'attribut target="_blank" , nous ne montrons pas l'image. En pratique, nous voulons faire en sorte que jQuery pas les prendre en considération.
1 | ) . not ( '.noexternal' ) . addClass ( 'external' ) ; $ ('A [target = _blank].) Non (' Noexternal. ') AddClass («externe»).; |
Cette meotdo, quoique efficace, forces, cependant, de faire en un lien que nous voulons exclure la classe noexternal :
1 2 3 | "blank" href = "http://www.undolog.com" > Link esterno con immagine < / a > < a target = "blank" href = "http://www.undolog.com"> lien externe avec photo </ a > "blank" class = "noexternal" href = "http://www.appleside.it" > Link esterno senza immagine < / a > < un lien target = classe "blanc" = "noexternal" href = "http://www.appleside.it"> Externe sans image </ a > |
Utilisez une boucle each ()
Sinon, pour désactiver l'utilisation de la classe de tous les liens externes qui contiennent une image, nous pouvons utiliser:
1 2 3 4 5 6 7 | ) . each ( $ ('A [target = _blank]: non (Noexternal).') Unité (. function () { this ; var me = this; ! ( $ ( me ) . children ( 'img' ) . length > 0 ) ) if (($ (moi). enfants ('img'). longueur> 0)) . addClass ( 'external' ) ; . $ (Me) AddClass («externe»); } ); |
Cela remplit la même fonction que le précédent avec l'ajout de contrôles pour voir si la «première» fils est une image. . Si c'est le cas, la classe external n'est pas ajouté à la balise a .
Il serait intéressant de voir si il ya une méthode pour faire la même chose sans l'aide d'un "cycle" each() !










Il n'y a aucun commentaire pour cet article
Laisser un commentaire