2012-08-22 36 views
1

的StackOverflow上的網站,投票箭頭開始它可以是「投票機客」 /「投降客」如果用戶沒有投票。如果用戶之前投票,它也可以是一個/另一個。從這三種情況開始,在用戶點擊後,我想要切換課程。與漂亮的人在這個網站的幫助下,我到了迄今爲​​止代碼:的javascript:開關一對

if($("a.vote-up-down").hasClass("vote-up-on")){ 
    $(".vote-up-on").removeClass("vote-up-on").addClass("vote-up-off"); 
    $(".vote-down-off").removeClass("vote-down-off").addClass("vote-down-on"); 
} 
else if($("a.vote-up-down").hasClass("vote-down-on")){ 
    $(".vote-down-on").removeClass("vote-down-on").addClass("vote-down-off"); 
    $(".vote-up-off").removeClass("vote-up-off").addClass("vote-up-on"); 
} 

這工作,如果你不點擊向上箭頭再次當它已經投票機上,或者你不點擊當它已經投票下來時再次向下箭頭。否則,它會不斷切換而不考慮實際的投票。如果最初兩個箭頭關閉,則此代碼將同時更改。 在我的ajax函數中,我可以提供實際投票值(1或-1)的響應消息,如何糾正上面的代碼?如果你不使用vote-up-onvote-down-on不同的類名

+0

中的條件?在事件處理程序中? – pimvdb

+0

整個投票結果而來的,是Ajax響應函數$(「a.vote」)內。住(「點擊」,函數(){}函數首先評估錯誤,並給予消息,如果成功的話,我可以切換類。和打印成功的消息 – Jenny

+1

你可以用'toggleClass' – undefined

回答

3

整個事情更容易。只需切換一個類onhttp://jsfiddle.net/ghSEb/

$(".vote").on("click", function() { 
    $(".vote").not(this).removeClass("on"); // make sure to remove other vote 
    $(this).toggleClass("on");​​​​​​​​​    // switch this one 
}); 
+0

謝謝,但我需要,以示對誰投了贊成票用戶初始投票值。如果之前投票,用戶可以向下看到他投了或不點擊 – Jenny

+0

@Jenny。!。:就在HTML中添加類'on'。 – pimvdb

+0

1.添加類「的」以向上或向下箭頭?2.用戶已沒有投票,他的箭都是灰色(關閉),不能讓它開始「在」 – Jenny

2

當你執行該代碼使用的.toggleClass()

var $voteDown = $("a.vote-up-down"); 
$(".vote-up-on").toggleClass('vote-up-off',$voteDown.hasClass("vote-up-off")) 
$(".vote-up-off").toggleClass('vote-up-on',$voteDown.hasClass("vote-up-on"))