Je suis un newb jQuery donc c'est probablement rudimentaire.

J'ai une page de test ici: http://www.problemio.com où j'essaie de faire des liens pour voter haut ou bas.

Voici à quoi ressemblent les liens:

<a class="link_button" id="vote_up">Vote Up</a> 
<a class="link_button" id="vote_down">Vote Down</a>

J'utilise l'attribut class pour styliser partout sur le site avec ce link_button, j'ai donc décidé d'utiliser l'attribut id pour distinguer le lien pour l'appel jQuery.

Voici à quoi ressemble ma fonction jQuery:

$('a.vote_up').click(function() 
{
alert("up");
});

En ce moment, je veux juste m'assurer qu'il est correctement appelé. Mais l'alerte n'est pas appelée, ce qui me fait penser que cela est cassé quelque part. Une idée comment je peux faire fonctionner ça?

Merci!

0
Genadinik 1 oct. 2011 à 00:51

4 réponses

Meilleure réponse

Vous utilisez le sélecteur de classe . au lieu du sélecteur d'ID #. Par conséquent, soit

$('#vote_up').click(function(){
     alert("up");
});

Ou

$('.link_button').click(function(){ 
    if( this.id === 'vote_up' )
        alert('vote up'); 
    else if ( this.id === 'vote_down' )
        alert('vote down'); 
 } 

EDIT: assurez-vous également que tout est dans un $ (document) .ready ... i.e

$(function(){ 
    $('#vote_up').click(function(){
         alert("up");
    });
}); 
8
aziz punjani 24 oct. 2011 à 02:44

Votre sélecteur actuel est incorrect, il recherche une balise a avec une classe de vote_up pas son id ...

Utilisez-le à la place ...

$(function() {
    $('#vote_up')...
});
5
jondavidjohn 30 sept. 2011 à 21:14

Avez-vous essayé le sélecteur d'identification?

$('#vote_up').click(function() {
    alert('up');
});
4
Dennis Traub 30 sept. 2011 à 20:53

a.vote_up recherche une balise <a> avec la classe vote_up. Dans votre code HTML vote_up est un ID, vous voulez donc ceci:

$('#vote_up').click(function() 
4
Rocket Hazmat 30 sept. 2011 à 20:54
7615956