2012-03-21 9 views
0

私のHTMLの形式は、一致するすべての要素の要素推移:選択は代わりに

<ul> 
    <li class="tile"> 
     <span class="hidden"></span> 
     <span class="hidden"></span> 
    </li> 
    <li class="tile"> 
     <span class="hidden"></span> 
     <span class="hidden"></span> 
    </li> 
</ul> 

をし、クラスtileliが上推移したとき、私は、そのクラスを削除することをクラスhiddenとの最初のspanを必要としています。マウスを離すと、そのスパンを再び隠す必要があります。だけではなく、1は時に推移し、

$(".tile").hover(function() { 
    $(this + ":first-child").removeClass("hidden"); 
}, function() { 
    $(this + ":first-child").addClass("hidden"); 
}); 

は、しかし、これはアクションを行うクラスtileliのすべてを作る:これまでのところ、私はこれを持っています。 2番目の関数は、ヘッダーのスタイルシート参照にhiddenクラスを与えます。

私は間違っていますか?私はthisを正しく使用したと思った。

+0

私はあなたがこのプラグインを見てお勧めします - > http://cherne.net/brian/resources/jqueryを.hoverIntent.html – SpYk3HH

答えて

2

thisを他のセレクタと連結しようとしないでください。それは、あなたが思う通りではありません。代わりに

使用.find()

$(".tile").hover(function() { 
    $(this).find(":first-child").removeClass("hidden"); 
}, function() { 
    $(this).find(":first-child").addClass("hidden"); 
}); 
+0

完璧、ありがとうございます。 – Chro

1

あなたのホバー機能は次のようになります。

$(".tile").hover(function() { 
    $(this).find("span").first().removeClass("hidden"); 
}, function() { 
    $(this).find("span").first().addClass("hidden"); 
}); 
関連する問題