2012-04-24 15 views
2

JQUERYで単純なオーバーレイを作成しようとしています。がホバーにホバーするとcontent1が消え、content2が表示されます。次に、マウスアウトcontent2content1が再表示されます。divのネストされたアイテムの上にマウスを置いて

content2annoyingdivオーバーannoyingdivときにマウスが移動しマウスアウトイベントトリガを持っている以外これが正常に動作します。これを回避するにはどうしたらいいですか?それともこの解決方法は?

HTML

<div class="content1">blah blah</div> 

<div class="content2"> 
    <div class="annoyingdiv"> 
     blah blah 
    </div> 
</div> 

のjQueryはJavaScript

$(function() { 

    $('.content1').hover(function() { 

     $(".content2").css("display", "block"); 
     $(this).css("display", "none"); 

    }); 

    $('.content2').mouseout(function() { 

     $(".content1").css("display", "block"); 
     $(this).css("display", "none"); 
    }); 

}); 
+1

mouseleaveの代わりに、マウスアウトで実験してみます。 –

答えて

4

代わりmouseoutイベントのmouseleave eventを使用してください。

+0

あなたの私のヒーロー!ありがとう – Anicho

2

CSSを使用してください。

証明:http://jsfiddle.net/iambriansreed/vaQTU/

HTML:

<div class="parent"> 
    <div class="content1">blah blah content1</div> 

    <div class="content2"> 
     <div class="annoyingdiv"> 
      blah blah annoyingdiv 
     </div> 
    </div> 
</div> 

はCSS:

.parent .content2 { 
    display: none; 
} 
.parent:hover .content1 { 
    display: none; 
} 
.parent:hover .content2 { 
    display: block; 
}​​​ 
+0

有効なポイント私はこのように行くことができますが、私は相互にリンクされているいくつかのコンポーネントを持っています。 – Anicho

関連する問題