2016-05-05 5 views
-2

私は、ホバートしたときにdivが背景を変更したいと思っています。しかし、divの中のテキストが代わりにホバーされているときには、背景が変わらない。 これは私が試みたものですが、すべての背景はdivです。私はまた、imgの代わりにa > imgをハンドラの関数で試しましたが、全く機能しませんでした。<a>の中でh1をターゲットに設定するにはどうすればよいですか?

function handlerIn() { 
    $("img").css({"opacity":1}); 
} 

function handlerOut() { 
    $("img").css({"opacity":0}); 
} 

$("a").mouseenter(handlerIn).mouseleave(handlerOut); 
+0

OPのイベントハンドラは、すべての 'img'要素をトリガしています。ユーザーはmouseenter/mouserleaveを使用してアクティブ化した要素をトリガーするだけです。 –

+0

何かに関係するh1は何ですか? – Pete

答えて

1

a > imgimgaparent > child)の子が、子孫(achestor descendant)ではありませんので動作しません。

だからあなたのCSSルールは次のようになります。

a:hover img { 
    opacity: 1; 
} 

ですから、まったくのjQueryを必要としませんが、あなたはjQueryのを使用したい場合、あなたはイベントのように起こるa要素を使用する必要がありますルートはimg要素のために検索します。さもなければ、すべてimg要素を見つけるでしょう。

function handlerIn() { 
    $(this).find('img').css({ 
    "opacity": 1 
    }); 
} 

function handlerOut() { 
    $(this).find('img').css({ 
    "opacity": 0 
    }); 
} 

$("a").mouseenter(handlerIn).mouseleave(handlerOut); 
0

jqueryを実行する必要はありません。これは、CSSで行うことができます

#kpop:hover, #fashion:hover, #martialarts:hover, #nature:hover{ 
    background: url('http://www.dike.lib.ia.us/images/sample-1.jpg/image_preview'); 
} 
0

イムいないことを確認これが正しいあなたがhover()機能を使用していない理由は? http://codepen.io/soulister/pen/MyZrPy

+0

'hover'は' .mouseenter(...).mouseleave(...); 'の短い形式で、どちらか一方を使うと違いはありません。 css({"opacity":1})あなたのコードを '$(" img ")からcss({" opacity ":1});' $(this).find( "img")に変更する前に、 ); 'それはうまくいかなかったので、解決策は' hover() 'ではなく' $(this).find( "img") 'です。そして、あなたが答えを書くならば、答えにあなたのコードを含めてください。 –

関連する問題