javascript - 获取 Google Maps API 3 中标记的 DOM 元素

标签 javascript google-maps dom

我正在尝试找到一种方法来获取标记的 DOM 元素。 Google 似乎使用不同的元素来显示标记和处理事件。

到目前为止我已经弄清楚了两件事。 有一个名为 fb 的生成变量,它保存标记对象上的 DOM 元素,但我认为下次 Google 更新 API 时,它会被命名为不同的名称。所以不去。

其次,如果将单击事件附加到标记,则 API 会将事件 DOM 元素作为参数发送到您指定的函数。在 Firebug 中查看它时,我找不到两者之间的任何关系。

我想要完成的是操作 DOM element() 并为其提供更多信息,而不仅仅是带有背景的“div”元素。

我在版本 2 中使用 name 属性(未记录)完成了此操作,该属性在 div 元素上生成 id。

有人有想法吗?

最佳答案

我发现此方法很有用,尽管它可能并不适合所有环境。 设置标记图像时,向 URL 添加唯一的 anchor 。 例如:

// Create the icon
var icon = new google.maps.MarkerImage(
    "data/ui/marker.png",
    new google.maps.Size(64, 64),
    new google.maps.Point(0,0),
    new google.maps.Point(48, 32)
);

// Determine a unique id somehow, perhaps from your data
var markerId = Math.floor(Math.random() * 1000000);
icon.url += "#" + markerId;

// Set up options for the marker
var marker = new google.maps.Marker({
    map: map,
    optimized: false,
    icon: icon,
    id: markerId,
    uniqueSrc: icon.url
});

现在你有了一个独特的选择器,即:

$("img[src='data/ui/marker.png#619299']")

或者如果您有标记:

$("img[src='" + marker.uniqueSrc + "']")

关于javascript - 获取 Google Maps API 3 中标记的 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2065485/

相关文章:

用于评估简单数学字符串的 JavaScript,如 5*1.2(eval/white-list?)

javascript - Google Maps DrawingManager 在 Angular 中未定义

javascript - 谷歌地图的宽度和高度

javascript - 想要显示 "True"和 "False"按钮

javascript - 是否可以在 KonvaJS 的形状/组上捕获右键单击事件?

javascript - JavaScript 中本地定义的样式和动画

javascript - JQuery: $.get 不是一个函数

ajax - Google Chrome 和 Safari 中 Google map 和 Ajax 的奇怪问题

javascript - 为什么我的 JavaScript 没有设计我的标题

javascript - 为什么元素从 DOM 中移除后在 IE 中为空?