Skip to content

Instantly share code, notes, and snippets.

@meirish
Last active December 11, 2015 12:39
Show Gist options
  • Save meirish/4602284 to your computer and use it in GitHub Desktop.
Save meirish/4602284 to your computer and use it in GitHub Desktop.
$('div.table').on('change', 'input', function () {
var $targ = $(this),
isChecked = $(this).is(':checked'),
$checks = $('.table .checkbox input'),
$checked = $checks.filter(':checked'),
$sumlabel = $('.overview-summary label');
// the checkbox update will be handled by its own handler
// update this row
$targ.closest('.tr').toggleClass('selected', isChecked);
// update counter at the bottom
$checked.length === 0 ? $sumlabel.removeClass() :
$checked.length === $checks.length ? $sumlabel.addClass('checked').prev().prop('checked', true) :
$sumlabel.removeClass('checked').addClass('some-checked').prev().prop('checked', false);
$('.currently-checked').text($checked.length);
})
$('.overview-summary input').on('change', function () {
var isChecked = $(this).is(':checked'),
$checks = $('.table .checkbox input');
$checks.each( function (i, ele) {
$checks.eq(i).prop('checked', isChecked)
.next('label').toggleClass('checked', isChecked);
.closest('.tr').toggleClass('selected', isChecked);
})
$(this).next().removeClass('some-checked').toggleClass('checked', isChecked);
$('.currently-checked').text(isChecked ? $checks.length : 0);
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment