当元素重叠时取消mouseout事件

时间:2011-06-13 18:34:09

标签: javascript events hover mouseover

希望这个JSFiddle能比我的话更好地说明这个问题:

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

当地图悬停时,我在图像地图上显示一个绝对定位的H4作为标签。但是,当鼠标指针在H4上移动时,图像映射会触发鼠标输出,这会导致H4再次被隐藏。

我该怎样防止这种情况?当鼠标悬停在图像映射上时,我希望标签可见,无论它是否也在标签上。

3 个答案:

答案 0 :(得分:1)

我知道它并不完全相同,但我修改了你的小提琴并得到了一个工作替代方案,只是没有图像地图;)(悬停在'G'中间和第一个'o')

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

如果需要,您可以使用style属性在纯标记中定义坐标:

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

答案 1 :(得分:1)

您可以使用放置在图片顶部的透明图像/图层(使用地图)来“作弊”。

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

使用图像地图坐标。

答案 2 :(得分: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