作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我添加了将指针悬停在谷歌地图中时显示工具提示的代码。它显示了工具提示,但内容是“未定义的”。如何将指针相关的相应内容放入工具提示框中。代码为:
function initialize() {
var myOptions = {
zoom: 11,
center: new google.maps.LatLng(29.7,-95.4),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("salon_map"), myOptions);
var locations = [
__newmapdetls__
];
for (var i = 0; i < locations.length; i++) {
var location = locations[i];
var image = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld="+location[3]+"|FF0000|000000",
new google.maps.Size(20, 34),
new google.maps.Point(0, 0),
new google.maps.Point(10, 34));
var myLatLng = new google.maps.LatLng(location[1], location[2]);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
icon: image,
title: location[0],
zIndex: location[3],
tooltip:"testinggg"+i
});
google.maps.event.addListener(marker, 'mouseover', function() {
infowindow1.open(map, this);
});
google.maps.event.addListener(marker, 'mouseout', function() {
infowindow1.close(map, this);
});
var infowindow1 = new google.maps.InfoWindow({
content: "'"+this.tooltip+"'"
});
}
}
最佳答案
在查看您的页面源代码时,我注意到了几件事:
noConflict()
。所以这两个 jQuery 版本互相踩着对方。现在回答你的问题:
infowindow.open()
时不要使用 this
,而是使用 marker
。 (this
和 marker
在此上下文中可能相同,但使用 marker
以保持一致性。).close()
方法不接受任何参数。tooltip
属性。这可能 可行,但没有记录表明您可以用这种方式添加自己的属性。相反,只需为 tooltip
使用局部变量或参数。因此,将您的 for
循环更改为:
for (var i = 0; i < locations.length; i++) {
addMarker( locations[i], "testinggg" + i );
}
function addMarker( location, tooltip ) {
var image = new google.maps.MarkerImage(
"http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld="+location[3]+"|FF0000|000000",
new google.maps.Size(20, 34),
new google.maps.Point(0, 0),
new google.maps.Point(10, 34)
);
var myLatLng = new google.maps.LatLng(location[1], location[2]);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
icon: image,
title: location[0],
zIndex: location[3]
});
var infowindow = new google.maps.InfoWindow({
content: "'" + tooltip + "'"
});
google.maps.event.addListener(marker, 'mouseover', function() {
infowindow.open(map, marker);
});
google.maps.event.addListener(marker, 'mouseout', function() {
infowindow.close();
});
}
也就是说,您可能不喜欢将鼠标移到标记上而打开信息窗口时得到的结果。如果标记靠近窗口顶部怎么办?页面将立即移动以使信息窗口适合屏幕,现在标记将不再位于鼠标下方。
您在创建标记时已经设置了 title
属性。当鼠标悬停在标记上时,这应该会导致出现正常的浏览器工具提示,并且不会像信息窗口那样导致 map 移动。有什么理由不只使用该工具提示而不是信息窗口吗?您可以删除所有信息窗口代码,或者像往常一样让信息窗口在单击时打开。
关于javascript - 工具提示内容未定义 - 谷歌地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19109634/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!