2014-05-21 19 views
0

我具有佈置在這樣的方式的div的集合:Javascript和HTML:讓div不在前臺工作onmouseover?

<div id="main"> 
    <div id="background"></div> 
    <div id="foreground"> 
     <div id="foreground_element1></div> 
     <div id="foreground_element2></div> 
    </div> 
</div> 

背景div有成爲前景的div後面。背景div比前景更大;前景漂浮在上面。我想要做的是每當有背景div的onmouseover動作,我想運行我的JavaScript函數。

我遇到的問題是,如果鼠標位於前景區域,即使背景div仍然存在於該空間中,它只是在前臺後面,不會發出onmouseover信號。這是一個問題。

我試圖通過將主函數放在主div上,但是當鼠標從背景div移動到前景div時,會有一個mouseout和mouseover事件同時被調用,這使得我的函數當我只想運行一次時運行兩次。而且還有更多的複雜因素,因爲前景div有嵌套的元素,這又一次觸發了一個mouseout和mouseover組合。

有沒有什麼辦法讓整個背景div的onmouseover工作?或者是否有其他觸發器我應該使用?

+0

'onmouseenter',但要確保你想支持的瀏覽器已經實現了它 – guest

+0

你不能讓#foreground成爲#background的孩子嗎?然後將其置於絕對位置而不是將其浮動。 – Sheraff

+0

我不認爲onmouseenter將是一個很好的解決方案,因爲它不是與微軟以外的任何瀏覽器正式兼容。我可以嘗試讓前景成爲一個孩子,但如果可能的話,我寧願不這樣做 – user3656673

回答

0

我居然幸運地找到了答案,以我自己的問題在網上:)這裏其他的張貼參考:

如上評論提到一個人,微軟功能OnMouseEnter在做什麼,我要找的。問題在於它沒有得到其他瀏覽器的廣泛支持。但你可以編寫一個JavaScript函數來模擬它,如下所述:http://dynamic-tools.net/toolbox/isMouseLeaveOrEnter/