2010-10-12 69 views
1

我已经得到了这个脚本工作正常,允许用户投票,但我是如何使投票按钮的东西,当再次点击它切换回正常图像!就像计算器:jquery使用jQuery切换事件切换投票?

这是我的脚本:

$(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> 

这是我希望发生伪语言:

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

了解CSS sprites。 – BalusC 2010-10-12 18:34:57

+0

你好我在完成我的应用程序后要这样做,但我试图先把所有东西放在一起! – getaway 2010-10-12 18:36:48

回答

0

jquery has a toggle event允许您将两个事件处理程序绑定到交替调用的元素。

*未经测试,可能具有简单的语法错误。

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

所以,如果不是我使用点击,我使用切换? ;) – getaway 2010-10-12 18:38:54

+0

并记住我需要更改ajax请求的投票,所以我不要做什么! – getaway 2010-10-12 18:39:54

+0

我还是不明白,即时通讯JavaScript和jQuery的新的Bie – getaway 2010-10-12 19:10:43