2012-04-26 5 views
1

た後で、テーブル内のすべてのTRを取得します'head'がマウスオーバーして同じテーブルにあるすべての 'attributeVal'クラスを表示するときです。私は$( '。attributeVal')を実行するので、ページにある 'attributeVal'にすべて影響します。jQueryのは、私は同じページに次のようないくつかのテーブルをしたTR

また、そのテーブルを離れると、現在のテーブルのすべての 'attributeVal'がhide()になります。

ありがとうございました。

答えて

1

この方法は、マウスオーバーに行を示し、そして離れてホバリングするときにそれらを隠し。行を表示したままにする場合は、.toggle().show()に置き換えます。 mouseleavemouseoverを使用して

$('table').mouseleave(function() { 
    $(this).find('.attributeVal').hide(); 
}); 
$('.head').mouseover(function() { 
    $(this).nextAll('.attributeVal').show(); 
}); 


デモ:http://jsfiddle.net/t7CWp/(jQuery 1.5.1でも動作します)

+0

あなたには1つの問題がありますr回答(皆さん)。問題は、現在のテーブルで 'attributeVal'が必要なことです。マウスがテーブルを離れるとhide()が表示されます( 'head'だけでなく)。 – Nir

+0

@nir私たちは読者ではありません。正確な要件で質問を更新できますか? –

+0

@nir私は自分の答えを更新しましたので、あなたが望むものを正確に行います(jsfiddle参照) – Wulf

0

だけ現在のテーブル内の一致する要素を選択するように、コンテキストとして.attributeValセレクタに含まれている表を渡し:

$(".head").mouseover(function() { 
    $(".attributeVal", $(this).closest("table")).show(); 
}); 
0

.siblings()メソッドを探しています。すべての兄弟を選択します(オプションのセレクタに一致します)。テーブルを離れるときにのみ、テーブルの上にmouseleaveイベントを使用する要素を非表示にする

$('.head').on('mouseover',function() { 
    $(this).siblings('.attributeVal').show(); 
}) 
$('table').on('mouseleave',function() { 
    $(this).find('.attributeVal').hide(); 
}); 

あなたがここにアクションでそれを見ることができます:http://jsfiddle.net/ATWFH/

また代わりのページ.attributeValを非表示にしますCSSでロードすると、CSSを直接​​非表示にすることができます。

<style> 
    .attributeVal { display: none; } 
</style> 
+0

それは動作しません、私は理由を調べようとしています。私は1.51、私は1.72に更新されます – Nir

関連する問題