确定正确的复选框和按钮

时间:2013-04-02 13:36:44

标签: jquery html checkbox

我有以下内容;

<div class="trp">
    <input class="makeActive" type="checkbox">
    <input class="makeRepeat" type="checkbox">

    <button class="btn" data-item="makeActive">Make Active</button>
    <button class="btn" data-item="makeRepeat" checked="checked">Make Active</button>
</div>

我想做什么,

  1. 如果我点击任何一个按钮,那个具有类
    的复选框 应该检查等于单击按钮的数据项的名称和
    需要在按钮中添加一个名为.active的类名。

  2. 如果页面加载时已选中任何复选框,则需要识别 与该复选框相关的按钮,需要添加 class .active。

  3. 我设法在使用此

    单击按钮时选中复选框
    $('.trp .btn').click(function(){
        var elem = $(this).attr('data-item');
        var cb = $(this).closest('.trp').find('.'+elem);
    
    
        if (cb.is(':checked')) {
            cb.prop('checked',false);
        } else {
            cb.prop('checked',true);
        }           
    });
    

    但我不能像上面提到的那样做第二点。

    你能帮我做一下......

    问候,谢谢。

4 个答案:

答案 0 :(得分:1)

绑定后触发点击事件处理程序:

$('.trp .btn').click(function(){
    var elem = $(this).attr('data-item');
    var cb = $(this).closest('.trp').find('.'+elem);


    if (cb.is(':checked')) {
        cb.prop('checked',false);
    } else {
        cb.prop('checked',true);
    }           
})
// Trigger click
.click();

或者将您的事件处理程序放在一个函数中,并在pageload上调用它。

答案 1 :(得分:1)

$(document).ready(function () {
    $('.trp input[type=checkbox][checked=checked]').each(function (index, element) {
        var button = $('.trp button:eq(' + $(this).index() + ')').addClass('active');
    });
});

jsfiddle

答案 2 :(得分:1)

试试这个:

$('.trp input:checkbox').each(function () {
    var this = $(this);
    if (this.is(':checked')) {
        $('.trp input:button').filter(function () {
            return ($(this).data('item') === this.attr('class'))
        }).addClass('.active');
    }
});

答案 3 :(得分:0)

您需要添加以下代码:

$(document).ready(function(){
    $('.btn').is(':checked').each(function(){
        var elem = $(this).attr('data-item');
        $('.'+elem).addClass('active')
    })
})