Webページ上のチェックボックスはクリック範囲が小さく、使いづらいと感じています。
そんなチェックボックスのクリック範囲をjQueryを使って広げるスクリプトの紹介。
まずはスクリプトから。
※TABLEのTD中にチェックボックスが配置してある場合のサンプルです。
◆SCRIPT
$(function(){
$('table td:has(input[type=checkbox])').hover(function(){
$(this).css('background-color','#efefef');
},function(){
$(this).css('background-color','transparent');
});
$('table td:has(input[type=checkbox])').click(function(){
var chkb = $(this).children('input[type=checkbox]');
if(chkb.attr('checked')) {
chkb.attr('checked', false);
}else{
chkb.attr('checked', true);
}
});
$('table td input[type=checkbox]').click(function(){
if($(this).attr('checked')) {
$(this).attr('checked', false);
}else{
$(this).attr('checked', true);
}
});
});
TDの中にINPUTのチェックボックスがある場合、マウスオーバーで背景色を変更し
TD全体をクリックすることでチェックボックスにチェックが入ります。
TDクリックのアクションだけだと、実際にチェックボックスをクリックした場合に
チェックが入らなくなってしまったので、チェックボックスをクリックした場合のアクションも同じように入れてあります。
動作サンプルは以下
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
さらにカスタマイズすることでTDではなくTR全体をクリックすることでチェックを入れることや
TABLEではなくLIリストの場合などでも使用可能。
INPUTボタンを用意してチェックボックスの「全選択」「全解除」を組み込んだりすることも出来ると思います。
ご参考までに。。。
jQueryでのインターフェース向上はおもろい。
