2016-11-17 8 views
0

イベントの伝播に問題があります。 mouseover子要素がdescription divの場合、description divとmouseoveredの子はdisplay:none;となります。このイベントが発生すると、選択した子はページが更新されるまで非表示になります。ここで は「作業」のデモです:JavaScript:Popup Bubbleのmouseoutイベントで子供が隠れる

jsfiddle

私はmouseoutdescriptionが見つからない場合には、直ちにトリガーどここの主な原因はjsfiddleのどこかに私のJSコードの行8-15の間であると信じていますマウスカーソルの下のdiv。

:beforedescription divを追加するとエレガントな回避策が見つかりませんでした。この回避策はjsfiddle CSSセクションでコメントされています。これは残念なことにポップアップバブルで何かをするのを防ぐ(hrefのように)。私はこれを回避することなく、シンプルで機能的にしておきたいと思います。

+0

'

Text
が'消えるという問題ですか? –

+0

はい、また '

Text
'をマウスオーバーすると '
'が消えます。正しい動作は、 'mouseovering'の後に要素 '
Text
'が残っていることです。 – NightKn8

答えて

1

mouseleaveを使用し、e.targetの代わりにtargetを使用します。 e.targetはあなたがホバリングしているものと等しくなります。

https://jsfiddle.net/gfvq9yvp/6/

 e.target.children[a].addEventListener("mouseleave",function(e){ 
     this.style.display="none"; 
    }, false); 
+0

彼らはまだ消えています –

+0

更新版は次のとおりです:https://jsfiddle.net/gfvq9yvp/6/ – Vincent

+0

私は実際のコードであなたの答えをテストしました - 完全に動作します。ありがとうございました! – NightKn8

関連する問題