0

次のマークアップがある場合:

<ul id="level1">
    <li>
        <a href="#">Test</a>
        <ul id="level2">
            <li>
                <a href="#">Test</a>
            </li>
        </ul>
    </li>
</ul>

基本的に、レベル 1 にカーソルを合わせると、何かをする必要があります。ただし、レベル2にカーソルを合わせると、レベル1内にあるため、トリガーされます。レベル1にカーソルを合わせた場合にのみこれを実現する方法はありますか?

私が意味するものの例:

http://scottymeuk.in/Netr

左のボックスは、右のボックスの親です。しかし、左のボックス (親) にカーソルを合わせたときに何かが発生する必要がありますが、右のボックス (子) ではありません。

ありがとうございました。

私の問題を十分に説明できなかった場合は申し訳ありません。

4

3 に答える 3

3

event.stopPropagation1 つの解決策は、子を呼び出すことです。

$("#parent").on("someevent", function(){
  // do stuff
});

$("#child").on("someevent", function(e){
  e.stopPropagation(); // prevent the event from bubbling to the parent.
});
于 2013-03-18T14:28:05.203 に答える
2

イベント オブジェクトのドキュメントを参照してください...

http://api.jquery.com/category/event-object/

event.stopPropagation();

あなたが必要とするものです

$('#level2').hover)function(e) {
    e.stopPropagation(); // stops events from triggering in children
},function (e) {}
于 2013-03-18T14:28:37.437 に答える
0

$('level1').hover(function(){ if(!IsMouseOver($(this).find(level2)){ do what you want it to do }; });

まだテストしていませんが、ロジックはわかります。マウスオーバーはレベル1ですか?はい。レベル1を超えていて、レベル2を超えていない場合は、やりたいことをしてください

于 2013-03-18T14:55:56.347 に答える