2011-06-13 166 views
3

希望這應的jsfiddle說明問題比我的話更取消mouseout事件:當元素被覆蓋

http://jsfiddle.net/pmwRc/6/

我顯示絕對定位的H4作爲標籤在圖像地圖時的地圖徘徊。但是,當鼠標指針移到H4上方時,圖像映射會觸發一個鼠標,這將導致H4再次被隱藏。

我該如何預防?我希望標籤在鼠標懸停在圖像映射上時可見,無論它是否也在標籤上。

回答

1

您可以使用放置在圖像頂部的透明圖像/圖層(使用您的地圖)「作弊」。

http://jsfiddle.net/GRPQa/7/

它可以使用圖像地圖座標。

+0

這似乎是最合適的解決方案。謝謝:) – Wintermute 2011-06-14 15:10:37

+0

想接受這個答案呢? :P – Colin 2011-06-14 16:12:38

+0

道歉 - n00b這裏:) – Wintermute 2011-07-05 09:16:25

0
function doSomething(e) { 
    if (!e) var e = window.event; 
    var tg = (window.event) ? e.srcElement : e.target; 
    if (tg.nodeName != 'DIV') return; 
    var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement; 
    while (reltg != tg && reltg.nodeName != 'BODY') 
     reltg= reltg.parentNode 
    if (reltg== tg) return; 
    // Mouseout took place when mouse actually left layer 
    // Handle event 
} 

http://www.quirksmode.org/js/events_mouse.html

1

我知道這是不完全一樣的,但我已經修改了你的小提琴,並得到了工作選擇,只是沒有影像地圖;)(在「G」中間懸停和第一個 'O')

http://jsfiddle.net/pmwRc/31/

您可以使用樣式屬性來定義的純標記座標如果需要的話:

http://jsfiddle.net/pmwRc/33/

+0

這是一個更好的方式,乾杯。麻煩的是,它依靠標籤h4超過目標懸停區域;我應該提到的事情並非總是如此。有時候,標籤在懸停區域旁邊,有時懸停區域會被「分組」 - 懸停應該在該組的所有區域上顯示標籤。但感謝您的幫助:) – Wintermute 2011-06-14 15:10:05