1

リストを使用して、ホバーすると表示され、離れると非表示になるシンプルなナビゲーションメニューを作成しています。タグにカーソルを合わせるとメニュー(ul)が表示され、div全体からマウスを移動したときにのみ表示されます。ただし、以下のコードは、divタグだけでなく、すべてのタグがマウスアウトされたときにマウスアウトをヒットしています。各子タグがイベントを継承していると思いますが、どうすればそれを回避できますか?

<div id="Div1" onmouseout="alert('out')">
    <div id="header">
        <a href="#" onmouseover="alert('over')">Show Others</a>
    </div>
    <ul id="menu">
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>
</div>
4

1 に答える 1

1

マウス オーバー/アウト イベントは少し奇妙な動作をすることがあります。最悪の部分は、ブラウザによって異なることです。私がお勧めするのは、 と のクロスブラウザー処理を備えたjQueryなどの JavaScript フレームワークを使用することです。さらに良いことに、 と があります。これは、子要素がある場合でも、マウスが要素に出入りするたびに 1 回だけトリガーされる特別なイベントです。mouseovermouseoutmouseentermouseleave

jQuery での mouseenter/mouseleave イベントのデモを参照してください。

于 2009-07-13T15:15:47.600 に答える