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でのインターフェース向上はおもろい。

  • このエントリーをはてなブックマークに追加
BlackFlag
FOLLOW

Related Posts

Comments (0)







コメント内容

※コメントにHTMLタグを直接入力しないでください。
※HTMLタグを入力する際はタグ一つ一つの括弧「<」「>」を全角に変換して入力してください。
コメントは承認制になっているのですぐには反映されません。コメント頂いた内容については出来る限り早めの対応を心掛けていますが、時期によって返答が遅くなってしまうことがありますので、何卒ご了承ください。
» コメントについてのご注意  |  » ライセンスに関して

jQueryでチェックボックスのクリック動作向上

Hatena Bookmark
Popular Entries
Recent Entries
PR
Facebook
Tweets
Book
  • jQuery Technical Note
Animal Protection
  • 福島被曝牛支援のお願い
  • NO FUR