Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript:切换一对类_Javascript_Jquery - Fatal编程技术网

javascript:切换一对类

javascript:切换一对类,javascript,jquery,Javascript,Jquery,在Stackoverflow网站上,如果用户没有投票,投票箭头最初可以是“投赞成票/投反对票”。如果用户之前投票,它也可以是一个向上/另一个向下。从这3个案例开始,当用户单击时,我想切换类。在这个网站上善良的人们的帮助下,到目前为止,我得到了以下代码: if($("a.vote-up-down").hasClass("vote-up-on")){ $(".vote-up-on").removeClass("vote-up-on").addClass("vote-up-off");

在Stackoverflow网站上,如果用户没有投票,投票箭头最初可以是“投赞成票/投反对票”。如果用户之前投票,它也可以是一个向上/另一个向下。从这3个案例开始,当用户单击时,我想切换类。在这个网站上善良的人们的帮助下,到目前为止,我得到了以下代码:

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)的响应消息,如何更正上述代码

如果您不使用
上投赞成票和
上投反对票作为不同的类名,那么整个过程就更容易了。只需打开一个类


如果不使用
上投赞成票和
上投反对票作为不同的类名,那么整个过程就更容易了。只需打开一个类


使用内部的条件


使用内部的条件


你什么时候执行这个代码?在事件处理程序中?整个投票结果都在ajax响应函数$(“a.vote”).live('click',function(){}中函数首先计算错误并给出消息,如果成功,那么我可以切换类并打印成功消息。何时执行此代码?在事件处理程序中?整个投票结果都在ajax响应函数$(“a.vote”).live('click',function(){}函数首先计算错误并给出消息,如果成功,则我可以切换类并打印成功消息。谢谢!但我需要为已投票的用户显示初始投票值。如果以前投票过,用户可以看到他已投票,而无需单击。@Jenny:只需在HTML中添加类
on
。1.添加类“on”是向上箭头还是向下箭头?2.对于未投票的用户,其箭头均为灰色(关闭),无法使其最初处于“打开”状态@Jenny:指向代表用户投票的箭头。上面的小提琴将两者都关闭;默认情况下打开一个,请参见。谢谢,我用html在JSFIDLE上尝试了你的代码,它可以工作。但一旦我将其放入文件中,它就不会响应单击。我应该将你的js放在我的ajax响应函数中,还是必须将其放在外部?我更喜欢将其放入获取ajax响应时使用ide。谢谢!但我需要为已投票的用户显示初始投票值。如果之前投票,用户可以看到他已投票,而无需单击。@Jenny:只需在HTML中添加类
on
。1.将类“on”添加到向上箭头或向下箭头?2.对于未投票的用户,其箭头均为灰色(关闭),最初无法显示“在"@Jenny:指向代表用户投票的箭头。上面的小提琴将两者都关闭;默认情况下打开一个,请参见。谢谢,我用html在JSFIDLE上尝试了你的代码,它可以工作。但一旦我将其放入文件中,它就不会响应单击。我应该将你的js放在我的ajax响应函数中,还是必须将其放在外部?我更喜欢将其放入ide时获得ajax响应。
$(".vote").on("click", function() {
    $(".vote").not(this).removeClass("on");  // make sure to remove other vote
    $(this).toggleClass("on");​​​​​​​​​               // switch this one
});
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"))