これは、クリックするたびにチェックボックスの現在の「チェック済み」状態を反転することで簡単に実行できます。例:
$(".offer").on("click", function () {
var $checkbox = $(this).find(':checkbox');
$checkbox.attr('checked', !$checkbox.attr('checked'));
});
また:
$(".offer").on("click", function () {
var $checkbox = $(this).find(':checkbox');
$checkbox.attr('checked', !$checkbox.is(':checked'));
});
または、DOMの「チェック済み」プロパティを直接操作する(つまり、クリックされたチェックボックスの現在の状態をフェッチattr()
するために使用しない):
$(".offer").on("click", function () {
var $checkbox = $(this).find(':checkbox');
$checkbox.attr('checked', !$checkbox[0].checked);
});
...等々。
注:jQuery 1.6以降、チェックボックスはprop
not attr
:を使用して設定する必要があります。
$(".offer").on("click", function () {
var $checkbox = $(this).find(':checkbox');
$checkbox.prop('checked', !$checkbox[0].checked);
});