我正在尝试找到一种方法来获取标记的 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/