2011-12-30 13 views
0

col1、col2、col3、col4という4つのcoloumnテーブルがあります。列の色が異なっています。 col1にはツールチップのリンクがあります。カーソルがリンク上を指すと、ツールチップが表示され、その行の背景イメージも変更されます。テーブル全体には1つの背景画像しかありません。テーブル行のjQueryのハイライト

私は次のコードを試しましたが、ChromeとSafariでは4つのすべての色(最初の色の色)で同じ色が表示されます。

$(function() { 
$('td:first-child a').hover(function() { 
    $(this).closest('table.benefitstable tbody tr').toggleClass("highlight"); 
}); 
}); 

.benefitstable tbody tr.highlight { 
background:url(../images/tablerowhover.jpg) 0 0 no-repeat; 
} 

次のタグでjQueryをせずに行うことはほぼ同等である:

.benefitstable tbody tr:hover { 
background:url(../images/tablerowhover.jpg) 0 0 no-repeat; 
} 

任意のヘルプ?

+0

Twitterのブートストラップゼブラテーブルはこれを実装しています。http://twitter.github.com/bootstrap/#tables – clyfe

+0

twitterのブートストラップは、多くの要素に対して18pxのマージン/パディングを指定しているためです。 – Paramasivan

答えて

0

あなたが試してみませんか:$(this).parent( 'table.benefitstable tbody tr')。toggleClass( "highlight"); TD要素はすべて行の子要素になりますか?私はそこでのnearest()の使用についてはわかりません...

+0

私の推測は、実際には 'td'ではなく' a'を選択しているからです。 –

+0

ホバーは、最初の列のリンク上にマウスを置いたときにのみ動作する必要があります。 – Paramasivan

+0

私は実際にこのようなことをしてきました。それは動作します:$(this).parent()。parent()。それはベストプラクティスではないかもしれませんが、Jquery parentsUntil( 'tr')関数はあなたが望むTRに上がり、実際の親ではなくTDを選択します。それが必要なのは、parentsUntilandIncluding()なのか、それともIMOです。申し訳ありませんが、私は( 'a')部分を見逃しました... –

関連する問題