【问题标题】:How to get ID of Image in Image Map Mouse Over如何在 Image Map Mouse Over 中获取图像的 ID
【发布时间】:2009-12-18 23:23:21
【问题描述】:

假设您有两个使用相同图像映射的图像。

<img src="/test/image1.jpg" id="image1" useMap="map-name">
<img src="/test/image2.jpg" id="image2" useMap="map-name">

<map name="map-name">
  <area shape="rect" coords="0,0,82,126" alt="Sun" onmouseover="testFunction();"/>
  <area shape="circle" coords="90,58,3"  alt="Mercury" onmouseover="testFunction();"/>
  <area shape="circle" coords="124,58,8" alt="Venus" onmouseover="testFunction();"/>
</map>

有没有办法在 testFunction() 中获取图像的 ID(在本例中为 image1|image2)?

【问题讨论】:

    标签: javascript jquery imagemap


    【解决方案1】:

    是的。最简单的方法是使用像 jQuery 这样的库来连接事件,而不是使用 onmouseover。如果你这样做,你基本上会做这样的事情:

    $("AREA").mouseOver(function (e) {
      var id = $(e.target).attr("id");
    }
    

    如果您不这样做,那么...在您的 testFunction 定义中使用“this”,祝您好运(因为您将处理跨浏览器不兼容带来的乐趣)。

    【讨论】:

    • -1 你试过这个解决方案吗? #1 jQuery 和 DOM 事件对象本身都没有 getTarget()
    • 事件对象中没有 getTarget() 但有 e.target、e.currentTarget 和 e.relatedTarget 属性。你指的是这个吗?如果是,这些属性会给出不稳定的结果——有时它返回 的 ID,有时它返回图像的 ID。任何人有任何其他建议,或者你能澄清你对机器鬼的打算吗?感谢您的原始回答。
    • 哎呀;不知道我从哪里得到 getTarget() ... sigh ...但是是的,e.target 和 e.currentTarget 就是我的意思。我会修复答案。至于不一致,这似乎很奇怪。当它返回图像地图的 ID 与区域的 ID 时,您能识别出任何模式吗?
    • 一个可能有助于解决不一致的想法是尝试使用稍微不同的事件(mouseenter 或 mouseleave),如下所示:stackoverflow.com/questions/1201052/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多