$('.button').click(function(){
$(this).toggleClass('clicked')
$('.clicked+span').toggleClass('choice');
});
我刚刚开始学习jQuery,我正在玩一些方法。因此,当单击类.button
的链接时,toggleClass
会同时添加两个类,但是当我再次单击它时,只删除了.clicked
。尽管我认为,.choice
课仍然存在。
有人可以解释我在这里缺少什么,可能是如何实现这一点 - 每次点击切换两个类?
修改
对不起,这是code 我想要实现的是当你单击“a)”时,相应的行会以某种方式突出显示。
答案 0 :(得分:2)
第二次点击你的按钮..
$('.clicked+span').toggleClass('choice');
找不到您的元素,因为.clicked类刚被移除。
答案 1 :(得分:1)
如果您尝试一次添加/删除两个课程,请执行以下操作:
$('.button').click(function(){
$(this).toggleClass('clicked choice');
});
答案 2 :(得分:1)
如果您正在尝试实施单选问题,则需要以下内容:
$('.button').click(function(){
var $this = $(this),
wasClicked = $this.hasClass("clicked");
//remove another selected if any
$('.clicked').removeClass('clicked')
.next().removeClass('choice');
//mark current as selected if it wasn't
!wasClicked && $this.addClass("clicked")
.next().addClass('choice');
});
http://jsfiddle.net/tarabyte/96GZB/1/
对于多项选择题:
$('.button').click(function(){
$(this).toggleClass('clicked')
.next().toggleClass('choice');
});
答案 3 :(得分:1)
啊,看到代码使它更清晰。
$('.button').click(function(){
$(this).toggleClass('clicked');
$(this).next('span').toggleClass('choice');
});
我认为你最好让跨度成为.button的孩子,所以你可以在样式表中设置这样的东西;
.clicked span {
background: blue;
}
然后你可以完全取消.choice类。