2011-09-13 7 views
1

同じIDを持つページ上の1つの要素にフェードを適用する際に問題が発生します。複数の画像要素がすべてJqueryに配置されているとフェードします。

まず、画像を60%までフェードアウトし、ホバー上で画像を100%にしたいと思います。この部分は機能しますが、効果はページのすべての要素に適用されます。

// Fading images 
$(document).ready(function(){ 

$('.mainArticle img').fadeTo('slow', 0.6); 

$('.mainArticle img, .articleContainer').hover(function(){ 

    $(this).find('.mainArticle img, .articleContainer').stop(true,true).fadeTo("slow", 1.0); 
},function(){ 
    $(this).find('.mainArticle img, .articleContainer').stop(true,true).fadeTo("slow", 0.6); 
}); 
}); 

また、これが可能な限り互換性があるようにしようとしている場合は、これを行うことができます。

は、あなたが再び同じ要素をfind() INGのしている

乾杯、

トム

+1

あなたの 'html'を投稿すると、あなたの'セレクタ 'はおそらくあなたが望む以上につかんでいます。 – Jack

+0

あなたの問題を解決しましたか?私が投稿したjsFiddlesを見れば、私は不思議です。 –

答えて

3

、君たちは助けることができる願っています。

$('.mainArticle img, .articleContainer').hover(function(){ 
    $(this).stop(true,true).fadeTo("slow", 1.0); 
},function(){ 
    $(this).stop(true,true).fadeTo("slow", 0.6); 
}); 

はしかし、私は(私はあなたがやろうとしているかを理解思うし、あなたのHTMLに応じて、あなたがHTMLを投稿することができれば、それは:あなたは自分のホバーハンドラのためにこれを使用できるように$(this)は、ホバー要素であり、 jsFiddle

:フェードインする1つの画像だけでは

$(function(){ 
    $('.mainArticle img').fadeTo('slow', 0.6); 

    $('.articleContainer').hover(function(){ 
    $(this).find('.mainArticle img').stop(true,true).fadeTo("slow", 1.0); 
    },function(){ 
    $(this).find('.mainArticle img').stop(true,true).fadeTo("slow", 0.6); 
    }); 
}); 

:)たくさん容易になるだろう、あなたはおそらくこのような何かにそれを変更したいと思いますフェードする複数の画像を使用する場合:jsFiddle

+0

すごく、ありがとう。複数の要素の部分についての手掛かりはありますか? –

+0

'.mainArticle'要素が' .articleContainer'の中にある場合、予期しない結果が発生します –

+0

'.articleContainer'は完全に削除できます。また、 '.articleContainer'内にはありません –

0

$(this).find( '。mainArticle img、.articleContainer')の代わりに$(this)を使用するのはどうですか?

セレクタに一致するすべての要素を選択していますが、既にホバリングしているので、$(this)を使用してそこの変更を実行できます。

+0

どちらもそうではないことを恐れますが、省略形は非常に便利です。助けてくれてありがとう。 –

関連する問題