少しのjQueryコードでHTMLテーブルの列にリンク先を指定できるようにする

Ads

シンプルでいいアイデアだったのでメモ。
HTMLテーブルの列そのものにリンクを
指定できるようにする、というもの。jQuery
でサクッと出来るようですね。ちょっと思
いつきませんでしたけど・・テーブルまわり
は使いやすさを向上したいところです。

HTMLのテーブルの列をjQueryでクリッカブルにする事で、ユーザーの利便性を上げられそうです。

動作サンプル

地名 読み方 En 詳細 その他
東京 とうきょう Tokyo 日本の事実上の首都がある ダミーリンク
京都 きょうと Kyoto 794年に日本の首都に定められた ダミーリンク
静岡 しずおか Shizuoka 静岡市と浜松市の2つの政令指定都市を有する ダミーリンク
大阪 おおさか Osaka 関西地区の経済・文化の中心地 ダミーリンク

列全体がクリック可能で、Wikipediaに飛びます。セル内にアンカータグが含まれている場合はそちらが優先されます。Webサービスの料金プランなんかに使えそうでは。

コード

jQuery( function($) {
			$('tbody tr[data-href]').addClass('clickable').click( function() {
				window.location = $(this).attr('data-href');
			}).find('a').hover( function() {
				$(this).parents('tr').unbind('click');
			}, function() {
				$(this).parents('tr').click( function() {
					window.location = $(this).attr('data-href');
				});
			});
		});

列のどこにいてもクリック出来るようにする。tr要素には予めdata-href=”http://example.com”というマークアップをしてあります。

マークアップ

	<table> 
				<thead> 
					<tr> 
						<th>地名</th> 
						<th>読み方</th> 
						<th>En</th> 
						<th>詳細</th> 
						<th>その他</th> 
					</tr> 
				</thead> 
				<tbody> 
					<tr data-href="http://ja.wikipedia.org/wiki/%E6%9D%B1%E4%BA%AC"> 
						<td>東京</td> 
						<td>とうきょう</td> 
						<td>Tokyo</td> 
						<td>日本の事実上の首都がある</td> 
						<td><a href="#">ダミーリンク</a></td> 
					</tr> 
					<tr class="even" data-href="http://ja.wikipedia.org/wiki/%E4%BA%AC%E9%83%BD"> 
						<td>京都</td> 
						<td>きょうと</td> 
						<td>Kyoto</td> 
						<td>794年に日本の首都に定められた</td> 
						<td><a href="#">ダミーリンク</a></td> 
					</tr> 
					<tr data-href="http://ja.wikipedia.org/wiki/%E9%9D%99%E5%B2%A1%E7%9C%8C"> 
						<td>静岡</td> 
						<td>しずおか</td> 
						<td>Shizuoka</td> 
						<td>静岡市と浜松市の2つの政令指定都市を有する</td> 
						<td><a href="#">ダミーリンク</a></td> 
					</tr> 
					<tr class="even" data-href="http://ja.wikipedia.org/wiki/%E5%A4%A7%E9%98%AA"> 
						<td>大阪</td> 
						<td>おおさか</td> 
						<td>Osaka</td> 
						<td>関西地区の経済・文化の中心地</td> 
						<td><a href="#">ダミーリンク</a></td> 
					</tr> 
				</tbody> 
			</table>

上記サンプルのソースです。

なかなか手軽でいい感じですね。ユーザーにも優しいし、使いこなしたいです。以下を参考にしました。

via:The Phuse

【追記】
もっとシンプルなコードにしてくれますた。ワーイ(´▽`)
少しのjQueryコードで(ryをもう少し短くしてみたよ
もっと少量のjQueryコードでHTMLテーブルの列にリンク先を指定できるようにする方法

こうしてより良い方法に改善してくれるのは凄く嬉しいですねw