0

私は同様のテーマに関する多くの投稿を読みましたが、それらはすべて優れており、それらを読んで多くのことを学びましたが、それでも自分のコードを満足に機能させることはできません.

いくつかのボタンがあるメニューバーがあります。これらの 3 つをマウスオーバーすると、JavaScript によって各ボタンのドロップダウン メニューが動的に作成されます。

ボタンからマウスアウトするか、メニューバーから完全にアウトすると、ドロップダウンがクリアされます。

明らかに、ドロップダウンにマウスを置いたときに、このドロップダウンをクリアしたくありません。

もちろん、onmouseout イベントが発生し、このメニューがクリアされます。

同様の問題に使用されるさまざまなアプローチを見ることができます。しかし、これらのいずれも機能せず、リスナーが親に割り当てられたときに明らかに存在しない場所に div と dl が作成されたという事実に起因すると思います。そのため、dom に追加された html によってドロップダウンがリスナーのスコープ内に配置されますが、それでもマウスアウト イベントが発生したと想定されます。

正常に追加された動的コンテンツのリスナーを追加して修正しようとしましたが、マウスオーバーの前にマウスアウトが発生するのを防ぐことはできません。

4

1 に答える 1

0

タイマーを設定し、生成されたメニューにマウスオーバーするとクリアされます。

document.getElementById("menu").onmouseout = function(e){   
    window.to = setTimeout(function(){
        // remove the submenu
    },20)
}

document.getElementById("submenu").onmouseover = function(e){   
    clearInterval(window.to)
}
于 2012-01-13T22:56:15.073 に答える