如果选中复选框,则添加“活动”类

时间:2013-07-02 11:11:30

标签: jquery

我发现通常很容易在jQuery中添加一个活动的类,但这次我试图将它实现为一段与谷歌地图相关的代码。

我使用jQuery显示和隐藏标记的代码段是:

$('input[type="checkbox"]').click(function(){
        var id = $(this).attr('id');
        if($(this).is(':checked')) {
            show(id);
        } else {
            hide(id);
        }
      });

我的输入和标签示例

<input type="checkbox" id="school" class="checkbox" /><label for="school">Schools</label>

我想要做的是如果单击该复选框,则向其添加一个类并显示标记。

我尝试在代码中添加AND运算符并使用$(this).addClass('active');但没有运气。这可以在这段代码中实现,还是我必须从头开始创建它?

感谢。

2 个答案:

答案 0 :(得分:1)

不确定我明白了,但是这样的事情应该有效:

$('input[type="checkbox"]').on('click', function(){
    var state = this.checked;
        func  = state ? show : hide;

    func(this.id);
    $(this).toggleClass('active', state);
});

答案 1 :(得分:0)

经过一些微小的修正后,我找到了一个解决方案:

$('input[type="checkbox"] + label').click(function(){
        $(this).toggleClass('active');
      });

我的谷歌地图代码与jQuery冲突,所以这是一个单独的函数。

有人可以告诉我为什么这个被投了票?我下次问一个问题。

感谢。