2010-10-05 14 views
-1

i ont ce code jquery qui fonctionne très bien, mais l'image à la fin n'est pas en train de changer le src i spécifié ici:changer l'image dans jquery?

jquery:

$(document).ready(function() { 
     $("a.vote_up").click(function(){ 
     //get the id 
     var the_id = $(this).attr('id'); 

     //the main ajax request 
     $.ajax({ 
      type: "POST", 
      data: "action=vote_up&id=" + the_id, 
      url: "ajax/votes.php", 
      success: function(msg) { 
      $("span.vote_count#"+the_id).html(msg).fadeIn(); 
// my problem is here 
      $(".vote_up#" + the_id + " img").attr("src", "img/upvoteActive.png"); 
      } 
     }); 
     }); 
    }); 

le code html:

<a href='#' class='vote_up' id="$id"><img src="img/uparrow.png" /></a> 

Répondre

4

Ne pas utiliser la classe en combinaison avec ID; il est redondant car ID doit toujours être unique ...

$("#" + the_id + " img").attr("src", "img/upvoteActive.png"); 

En outre, vous ne pouvez pas utiliser le caractère $ dans l'attribut ID. Pour citer le W3C on the ID attribute ...

ID et les jetons de nom doit commencer par une lettre ([A-Za-z]) et peut être suivi par un certain nombre de lettres, chiffres ([0-9 ]), traits d'union ("-"), souligne ("_"), les deux-points (":"), et les périodes (".").

+0

cela fonctionne toujours bien !! : ((désolé – getaway

+2

+1; Juste parce que cela n'a pas fonctionné pour vous, il n'est pas nécessaire de voter à voix basse parce que la réponse fait encore un bon point – Mottie

+1

mais son non pertinent, il devrait utiliser le système de commentaire, ce n'est pas une réponse, – getaway

1

Il semble que vous utilisiez le même ID plusieurs fois (img et count). Essayez de rendre l'ID plus unique comme:

<a href='#' class='vote_up' id="$id_link"><img src="img/uparrow.png" /></a> 
<span class="vote_count" id="$id_count"></span> 
+0

Bravo ça marche – getaway

+2

Vous ne pouvez pas faire quelque chose de" plus unique ", c'est soit unique ... soit ce n'est pas le cas –