javascript - 与多个图像关联的图像映射

标签 javascript mouseover area imagemap

假设页面上有多个相同的图像,所有图像都与同一张 map 关联:

<img id="img1" usemap="#my-map" .... >
<img id="img2" usemap="#my-map" .... >
<img id="img3" usemap="#my-map" .... >

<map name="my-map">
  <area  .... coords=... class="foo">
  <area ....  coords=... class="bar">
</map>

每个 AREA 上都有一个鼠标悬停事件处理程序。

在这些区域鼠标悬停事件处理程序的范围内,即仅引用区域鼠标悬停事件本地的变量,没有全局变量,是否可以知道鼠标位于哪个图像上? DOM 是否公开了一些 transient 关系,因此该区域的鼠标悬停事件处理程序可以回答“我此时正在映射哪个图像?”的问题

请排除将处理程序直接附加到图像本身的可能性。我并不是想解决问题,而是想找出在该区域的鼠标悬停事件处理程序中可以了解有关当前关联或“热门”图像的内容(如果有的话)。

谢谢

最佳答案

您可以使用类似的方法来查找 id。

$('area').bind('mouseover',function(e) {
    alert(e.fromElement.id); // will alert the ID of the image
})​;

您可以从 fromElement 获取更多信息,例如 src、outerHTML 等。您最好的选择是使用 console.log(e);并使用 Google Chrome 或 Firefox 中的 Firebug 查看它转储到控制台的内容。

编辑这种方法充其量是变化无常的,不应该依赖。 e 中的可用内容似乎取决于您所绑定(bind)的内容以及您获得的功能(单击、鼠标悬停等)。

关于javascript - 与多个图像关联的图像映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3648178/

相关文章:

javascript - jQuery 做 Action 如果大于但只做一次

html - 文本鼠标悬停触发的基于 CSS 的横幅图像交换

javascript - 悬停时 <li> 顶部的 DIV 菜单

ios - 检测 UIView 区域的颜色

javascript - CSS 在 EmberJS Handlebars 中被忽略

javascript - 使用 timeupdate 和loadedmetadata 事件循环浏览 HTMl5 视频标签

javascript - Jquery ajax 代码进入错误部分

html - 在 css 中鼠标悬停时缩放图像

c - 为什么输出总是为零?

matlab - 对重叠三角形曲线下的累积面积求和