vous ne pouvez pas manipuler les onglets via javascript (vous pouvez demander à un lien de s'ouvrir dans une nouvelle fenêtre, vous ne pouvez pas lui dire de l'ouvrir dans un onglet). ce que vous pourriez vouloir essayer si vous voulez essayer quelque chose comme ceci:
$('button').click(function() {
$('a').each(function() {
window.open($(this).attr('href'));
});
});
essentiellement, lorsque <button>
est cliquée, pour chaque élément <a>
, passer la valeur href
à window.open. ou fondamentalement, des tas de fenêtres ouvertes en supposant que vous n'avez pas bloqueur de pop up :)
votre code actuel dit essentiellement, lorsque vous appuyez sur <button>
, activez le gestionnaire onclick()
de tous <a>
éléments.
modifier: en réponse aux commentaires, comparer ce code qui imite la fonctionnalité de l'OP:
$('a').click(function() {
// assign an event to a.onclick
window.open($(this).attr('href'));
});
$('button').click(function() {
// when we press <button>, trigger a.onclick
$('a').click();
});
parce que nous avons déclaré une première fonctionnalité onclick()
, nous avons maintenant le même comportement que mon code d'origine. (piles de fenêtres ouvertes)
Bien que je comprenne votre code et que vous ne puissiez pas ouvrir les liens dans les onglets, quel est le problème avec le code fourni par OP? Merci. – shahkalpesh
le code OP basculera le gestionnaire d'événement onclick de chaque élément . cependant, en supposant que c'est le seul code, onclick est indéfini, et donc rien ne se passe – Owen
En fait, la syntaxe .each() a fonctionné pour ce dont j'avais besoin. Dans le contexte que je l'utilise, chaque lien s'ouvre dans son propre onglet, pas dans la fenêtre. Comme c'est pour mon usage personnel, je ne suis pas inquiet à l'idée d'être à l'épreuve des balles pour les autres utilisateurs/navigateurs. – Jason