2011-06-24 16 views
1

カテゴリdivが非表示になっていて、トグルが上がったときに表示されます。どんな助けもありがとう。私はこれを試してみましたjqueryが最も近いdivを選択

HTML

<div class="categorization"> 
<a href="#" class="toggler">something</a> 

<div class="categories"> 
</div> 

</div> 

jqueryの

$(".categorization .toggler").hover(function() { 
    $(this).closest('.categories').show(); 
    }, function(){ 
    $(this).closest('.categories').hide(); 
    }); 

答えて

5

closest()は、祖先ツリーを歩くので、探しているものではありません。あなたが望むものを達成するためにnextAll()first()を使用することができます。

$(".categorization .toggler").hover(function() { 
    $(this).nextAll(".categories").first().show(); 
}, function(){ 
    $(this).nextAll(".categories").first().hide(); 
}); 

next()は非常に次の要素にマッチするので、<div>要素がすぐにトグラー要素を以下の場合next(".categories")にのみ動作すること。

+0

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

0

なお:

jQueryのAPIで

.closest():現在の要素で始まり、最大進め、セレクタに一致する最初の祖先要素を取得します。 DOMツリーを通して。

はどうやら、あなたの< div>要素は>

はこの場合http://api.jquery.com/closest/

を参照してください<の祖先要素ではありません、あなたは(.nextを試してみてください)、あなただけの1要素を取得したい場合、 または.nextAll()、セレクタに一致するすべての要素を取得する場合。

+0

ありがとうございました。私はそれが両側を見ていたと思った – rookiee

3
var categoryDiv = $(this).next('div'); // or 
var categoryDiv = $(this).next('.categories'); 

これは、次のdiv兄弟をtogglerに関連付けることになります。

関連する問題