2010-10-12 5 views
1

J'ai ce script qui fonctionne bien, qui permet à un utilisateur de voter, mais je suis un peu de la façon dont je peux faire le bouton de vote, quand on clique à nouveau, il bascule à l'image normale! comme stackoverflow:jquery bascule les votes en utilisant jquery toggle event?

ceci est mon script:

$(document).ready(function() { 
    $('.statuses').delegate('.vote_up', 'click', function(e) { 

     //stop event 
     e.preventDefault(); 
     //get the id 
     var the_id = $(this).closest('.message').attr('id').split('_').pop(); 
     //the main ajax request 
     $.ajax({ 
      context: this, 
      type: "POST", 
       // Make sure "this" in the callback refers to the element clicked 

      data: "action=vote_up&id=" + the_id, 
      url: "ajax/votes.php", 
      success: function (msg) { 

       $(this).siblings("span.vote_count").html(msg).fadeIn(); 
        // get the child <img> and set its src 
       $(this).children("img").attr("src", "img/uparrowActive.png"); 
      } 
     }); 
    }); 

html:

<ul class="statuses"> 
<li id="set_41" class="message"> 
<span class="vote_count">0</span> 
<a href="#" class="vote_up"><img src="img/uparrow.png" /></a> 

c'est le langage pseudo que je veux arriver:

a user clicks vote image, it changes the image(uparrowActive) 
//I've done that already 
then 
if user clicks the same image again it goes back to normal image(uparrow) 
+0

En savoir plus sur les sprites CSS. – BalusC

+0

yeh j'allais le faire après avoir fini mon application, mais im essayant de tout rassembler d'abord! – getaway

Répondre

0

jquery has a toggle event qui permet vous pour lier deux gestionnaires d'événements à un élément qui sont appelés alternativement.

* non testé, a probablement des erreurs de syntaxe simples.

myElement.toggle(vote(), unvote()); 

function vote() 
{ 
    // add a vote to the item 
    // change icon to vote icon 
} 

function unvote() 
{ 
    // remove a vote from the item 
    // change icon to default icon. 
} 
+0

donc si au lieu de moi en utilisant click, j'utilise toggle? ;) – getaway

+0

et rappelez-moi j'ai besoin de changer le vote sur la demande ajax donc je ne sais pas quoi faire !! – getaway

+0

je ne comprends toujours pas, im un nouveau bie à javascript et jquery – getaway