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