2010-10-08 21 views
1

Je souhaite modifier le comportement sur un lien "a href" mais uniquement sur ceux qui ont un attribut personnalisé appelé ouvertComment modifier un lien "a href" mais seulement certains liens sélectionnés dans jQuery?

par exemple.

<a href="#" action="open">Link 1</a> 
<a href="http://www.google.co.uk/"></a> 

Je souhaite modifier uniquement le comportement du premier. Donc, je fais un:

jQuery('a[action|=open]').live('click', function(evt) { 
     do something; 
}); 

mais rien ne se passe. Le sélecteur sélectionne tous les éléments spécifiés mais l'événement click n'est pas exécuté. Qu'est-ce que je fais mal?

+0

p.s. Je l'ai essayé et ça fonctionne si j'y ajoute une classe mais est-ce que ça peut fonctionner avec un attribut personnalisé? –

Répondre

2

Il est plus facile de le faire avec un nom de classe:

$('a.open').click(function(){...}) 

<a href="#" class="open">Link 1</a> 
+0

+1, plus compatible navigateur croisé, et maintient le balisage valide contre la spécification – Ross

+0

Je suis d'accord, même si je pense que le code de l'ip devrait fonctionner, il le fait dans mes tests. – Adam

+0

Etrange, parce que ça ne marche pas si je n'utilise pas un cours. Quel navigateur avez-vous testé sur Adam? –

0

Votre code ne fonctionnera, mais pas tous les navigateurs prennent en charge les attributs personnalisés. Je suggère de suivre la réponse de @Diodeus et d'utiliser des classes. Ce jsFiddle fonctionne pour moi dans Chrome, mais il peut ne pas dans tous les navigateurs.