Javascript 使用jQuery的Reddit风格投票者
我试图复制reddit的投票按钮,但我对jQuery有点陌生,所以我遇到了挑战。我的HTML块看起来像: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
<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();
});