Jquery选中所有复选框

Cin*_*y93 3 javascript jquery

为什么我检查所有按钮只能工作一次而在第3次点击时不起作用.check all按钮仅适用于第一次点击.我检查了dom及其更新,但视图确实如此.问题的原因是什么?

小提琴

jQuery('.sp_country').click(function () {
    var checkbox = $(this).find(":checkbox"),
        checked = checkbox.is(":checked");
    checkbox.prop("checked", !checked);

});

jQuery('.sp_country input:checkbox').on('click', function (e) {
    e.stopImmediatePropagation();
    var checked = (e.currentTarget.checked) ? false : true;
    e.currentTarget.checked = (checked) ? false : checked.toString();
});

jQuery('#bt_checkbox').click(function (e) {
    e.stopImmediatePropagation();
    if (jQuery(this).val() === 'Uncheck All') {
        jQuery('#country input:checkbox').removeAttr('checked');
        jQuery(this).val('Check All');
    } else {
        jQuery('#country input:checkbox').attr('checked', 'checked');
        jQuery(this).val('Uncheck All');
    }
});
Run Code Online (Sandbox Code Playgroud)

Tus*_*har 6

fiddle Demo

更改

jQuery('#country input:checkbox').attr('checked', 'checked');
Run Code Online (Sandbox Code Playgroud)

至

jQuery('#country input:checkbox').prop('checked', true);
Run Code Online (Sandbox Code Playgroud)


使用.prop()

阅读.prop()vs .attr()