2016-11-17 33 views
0

我遇到了一些事件傳播的問題。當我mouseoverdescription div中的子元素時,description div以及mouseovered子元素獲得display:none;。發生此事件後,選定的小孩將保持隱形狀態,直到頁面刷新。 這裏是一個「工作」演示:JavaScript:Popup Bubble中的鼠標事件導致兒童隱藏

jsfiddle

我認爲,這樣做的主要原因是地方上的jsfiddle我的JS代碼行8-15之間,其中mouseout在沒有找到description的情況下,立即觸發在鼠標光標下的div。

我發現沒有優雅的解決方法,在我的css中添加:beforedescription div。你可以在jsfiddle CSS部分找到這個解決方法。這不幸的是阻止在Popup Bubble中做任何事情(如點擊href)。我想保持這個簡單和功能,沒有任何解決方法。

+0

問題有那麼''

Text
消失? –

+0

是的,以及'

''當你'mouseover''
Text
'消失。正確的行爲是'mouseovering'後元素'
Text
'兩個元素保持可見。 – NightKn8

回答

1

使用mouseleave並將其作爲目標而不是e.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