Javascript 使用jQuery的Reddit风格投票者

Javascript 使用jQuery的Reddit风格投票者,javascript,jquery,Javascript,Jquery,我试图复制reddit的投票按钮,但我对jQuery有点陌生,所以我遇到了挑战。我的HTML块看起来像: <ul class="karma-controls"> <li class="karma-control karma-up karma-up-selected"><a href=""></a></li> <li class="karma-total">1</li> <li cla

我试图复制reddit的投票按钮,但我对jQuery有点陌生,所以我遇到了挑战。我的HTML块看起来像:

<ul class="karma-controls">
    <li class="karma-control karma-up karma-up-selected"><a href=""></a></li>
    <li class="karma-total">1</li>
    <li class="karma-control karma-down"><a href=""></a></li>
</ul> 
实际上,它们是我想要的,但它们彼此独立。如果单击了“业力上升”,则需要取消选择“业力下降”(如果先前已选择),反之亦然


我想我需要很多关于hasClass、removeClass和addClass的if,但我想看看SO社区是怎么想的。

这里有一个解决方案,它在两个项目之间使用了单击功能:

$('.karma-down a, .karma-up a').click(function(e){
    var $parent = $(this).parent(),
        up      = $parent.hasClass('karma-up');

    $parent.toggleClass("karma-" + (up ? 'up' : 'down') + "-selected");
    $parent.siblings().removeClass("karma-" + (up ? 'down' : 'up') + "-selected");

    e.preventDefault();
});

因此,现在它可以打开和关闭单击的项目,但也可以从对方的项目中删除单击状态。

哇哈哈,这几乎比我能使用的更有效!现在将一些AJAX附加到这个。。。谢谢我试过了,但没用。它只是关闭,所选的类不会回来。
$('.karma-down a, .karma-up a').click(function(e){
    var $parent = $(this).parent(),
        up      = $parent.hasClass('karma-up');

    $parent.toggleClass("karma-" + (up ? 'up' : 'down') + "-selected");
    $parent.siblings().removeClass("karma-" + (up ? 'down' : 'up') + "-selected");

    e.preventDefault();
});