そこで、このマークアップを使用して、CSS とスプライトでチェックボックスのスタイルを設定しました。
<div class="open-checkbox">
<label class="open-checkbox">
<input id="<?php echo $id; ?>" class="key-areas-checkbox" name="interests[]" type="checkbox" value="<?php echo $label; ?>" />
</label>
</div>
そしてこのJS:
$(".key-areas-checkbox:checked").each(function(){
$(this).next().addClass('checked');
});
$('.open-checkbox').click(function () {
console.log('click');
var $this = $(this);
var $input = $this.find('input');
$this.toggleClass('checked', $input.is(':checked'));
return;
if($input.prop('checked')){
$this.removeClass('checked');
} else {
$this.addClass('checked');
}
});
これは、IE8 と IE7 を除くすべてのブラウザーで機能します。これらのブラウザでこれを機能させる方法を知っている人はいますか? 参考までに - 入力は非表示になっています。visibility:visible を作成し、チェックボックスをオンにしてから再度非表示にすると、正しく表示されることに気付きました。