How can I run a function on checkbox change?
I’m trying to write small checkbox replacing function base on that – but I’m doing something wrong.
Code:
(function($) {
$.fn.checking = function() {
if ($('.checbox').prop('checked', false) === true) {
$('.new-checkbox').prop('id', 'unchecked');
} else {
$('.new-checkbox').prop('id', 'checked');
}
};
})(jQuery);
$(document).ready(function() {
$('.checkbox').wrap('<div class="checkbox-wrapper"></div>');
$('.checkbox-wrapper').append('<p class="new-checkbox">Blue = Checked, Red = Unchecked</p>');
$('.checkbox').checking();
$('.checbox').bind('change', function() {
$(this).checking();
});
});
PlayGround: LIVE DEMO
You have some typos and errors in your script.
should be
if($('.checkbox').prop('checked'))would work too of course, but why select the element again, if you already made it a plugin and the element is available viathis?And
should be
Working demo: http://jsfiddle.net/fkling/yGBAK/40/
That said, it is better (more logical) to add and remove a class than changing the ID of the element.