汎用的に使えるように作ってみました。
//解除可能なラジオボタン
(function($) {
$.fn.uncheckableRadio = function() {
return this.each(function() {
var radio = this,
label = $('label[for="' + radio.id + '"]');
if (label.length === 0) {
label = $(radio).closest("label");
}
var label_radio = label.add(radio);
label_radio.mousedown(function() {
$(radio).data('wasChecked', radio.checked);
});
label_radio.click(function() {
if ($(radio).data('wasChecked')) {
radio.checked = false;
$(radio).change(); //変更イベントを発生
}
});
});
};
})(jQuery);
$(document).ready(function() {
$('input[type=radio]').uncheckableRadio();
});