Jquery首先单击addClass选择第二次单击removeClass选中

时间:2012-04-20 14:52:28

标签: jquery bind unbind

我有4个选项,我希望能够选择多个选项,或者通过第二次点击删除所选的类。

Jquery的

$('.contact-method li a').click(function(e) {
        $('.contact-method li a').removeClass('selected');
        $(this).parent('a').addClass('selected');
        e.preventDefault();
});

HTML

<ul class="contact-method">
<li class="sms"><a href="javascript:void(0);">SMS</a></li>
<li class="telephone"><a href="javascript:void(0);">Telephone</a></li>
<li class="email"><a href="javascript:void(0);">Email</a></li>
<li class="post"><a href="javascript:void(0);">Post</a></li>
</ul>

演示 http://jsfiddle.net/XeELs/97/

4 个答案:

答案 0 :(得分:9)

而不是

    $('.contact-method li a').removeClass('selected');
    $(this).parent('a').addClass('selected');

只需使用

    $(this).toggleClass('selected');

答案 1 :(得分:3)

如果您希望仅在锚节点上切换选定的类,请尝试:

$('.contact-method li a').click(function(e) {
    e.preventDefault();            
    $(this).toggleClass('selected');
});

http://jsfiddle.net/XeELs/99/

答案 2 :(得分:0)

使用toggleClass

$('.contact-method li a').click(function() {
        $(this).toggleClass('selected');
});

答案 3 :(得分:0)

使用toggleClass方法。

$('.contact-method li a').click(function(e) {
    $(this).toggleClass('selected');
    e.preventDefault();
});

http://jsfiddle.net/XeELs/100/

http://api.jquery.com/toggleClass/