2 votes

Ouverture de tous les liens avec la classe popup dans une nouvelle fenêtre

J'ai beaucoup de liens sur ma page avec class="popup".

Je veux que tous ceux-ci s'ouvrent dans une nouvelle fenêtre.

Y a-t-il un moyen simple de définir cela avec JavaScript?

4voto

kapa Points 41886

Je suis en train d'utiliser .live() pour prendre en charge les liens qui pourraient être ajoutés ultérieurement au DOM. Si vous n'ajoutez pas de liens à partir des gestionnaires d'événements, des rappels Ajax, etc., vous pouvez simplement utiliser .click().

$('a.popup').live('click', function (e) {
     window.open(this.href);
     e.preventDefault();
});

Veuillez noter que, selon la spécification actuelle de HTML5, vous pouvez également utiliser :

comme vous le pouviez auparavant en HTML4. De cette manière, vous n'avez pas besoin de Javascript. Cependant, l'utilisation de target n'est pas recommandée sur une doctype XHTML, car elle n'est pas considérée comme un attribut valide.

MISE À JOUR: Depuis la documentation de jQuery

À partir de jQuery 1.7, la méthode .live() est obsolète. Utilisez .on() pour attacher des gestionnaires d'événements. Les utilisateurs de versions plus anciennes de jQuery devraient utiliser .delegate() de préférence à .live().

Si vous avez besoin d'aide pour modifier votre code, assurez-vous de consulter les questions précédentes sur StackOverflow. Utiliser la recherche SO [jquery] live deprecated est un bon début.

1voto

Nicola Peluchetti Points 38948

Vous pouvez mettre ceci dans votre $(document).ready()

$('a.popup').attr('TARGET', '_BLANK');

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