1
$('.button').click(function(){
     $(this).toggleClass('clicked')
     $('.clicked+span').toggleClass('choice');
});

我刚刚开始学习 jQuery,并且正在使用一些方法。因此,当单击带有类的链接时.buttontoggleClass会同时添加两个类,但是当我再次单击它时,只会将.clicked其删除。.choice不管我怎么想,课程仍然存在。有人可以解释一下我在这里缺少什么,可能是如何实现这一点 - 在每次点击时切换两个类?

编辑

抱歉,这是代码 我想要实现的事情是,例如,当您单击“a)”时,相应的行会以某种方式突出显示。

4

4 回答 4

2

第二次单击您的按钮..

$('.clicked+span').toggleClass('choice');

找不到您的元素,因为 .clicked 类刚刚被删除。

于 2012-12-07T22:39:55.333 回答
1

如果您尝试一次添加/删除两个类,请执行以下操作:

$('.button').click(function(){
     $(this).toggleClass('clicked choice');

});

http://jsfiddle.net/cAcJX/

于 2012-12-07T22:44:56.550 回答
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');
            });

http://jsfiddle.net/tarabyte/96GZB/2/

于 2012-12-07T23:19:11.030 回答
1

啊,看到代码就更清楚了。

    $('.button').click(function(){
        $(this).toggleClass('clicked');
        $(this).next('span').toggleClass('choice');
    });

http://jsfiddle.net/96GZB/3/

我认为您最好将跨度设置为 .button 的子项,这样您就可以在样式表中设置类似这样的内容;

.clicked span {
background: blue;
}

然后你可以完全取消 .choice 类。

于 2012-12-07T23:23:06.230 回答