マウスサスペンション2段メニューを作成する場合、jQueryマウスが同時に2つの領域を移動する判断

3432 ワード

マウスを1つのレベルのメニューボタンに置いて2つのレベルのメニューを表示する機能を作成すると
a:ボタンb:メニュー
需要:マウスをaに移動して、bを表示して、aあるいはbから上へ移動して、bを隠します
ここで問題なのは、aに移動するとbが表示され、マウスをbに移動して次の操作を行うが、bに移動するとaを離れると、aを離れるイベント--bが隠され、どうしてもbにマウスを移動できないようだ.
解決方法:
重点を置く:
この効果は、B領域の少なくとも一部がA領域と重なる必要がある.
①:BはAの中にあります.
html
1
2
3 < div   style = "width:200px; height:200px; border:1px solid red;"   id = "a" >      < div   style = "width:100px; height:100px; border:1px solid skyblue; margin:50px auto; display:none;"   id = "b" > div > div >
jq
1
2
3
4
5
6
7
8
9 $(document).ready( function (){                 $( "#a" ).hover( function (){              $( "#b" ).show();          }, function (){              $( "#b" ).hide();          });                 });
②:Bは Aエリアにしかありません. のようになります.
html
1
2 < div   style = "width:200px; height:200px; border:1px solid red;"   id = "c" > div > < div   style = "width:100px; height:100px; border:1px solid skyblue; display:none; margin-top:-10px;"   id = "d" > div >
jq
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $(document).ready( function (){          $( "#c" ).hover( function (){              $( "#d" ).show();          }, function (){              $( "#d" ).hide();          });                     $( "#d" ).hover( function (){              $( "#d" ).show();          }, function (){              $( "#d" ).hide();          });                            });