只显示第二个pin的信息窗口
Only showing the info window of second pin
在我将信息窗口添加到引脚阵列后,当我单击第二个引脚时,infowindow
会在第一个引脚上弹出。当我点击第一个引脚时,第二个引脚的infowindow
弹出。
这是引脚阵列:
function setMarkers(map) {
// Adds markers to the map.
var image = {
url: 'http://localhost:8888/wp-content/plugins/wp_cat_map/assets/img/home_pin.png',
size: new google.maps.Size(35, 42),
origin: new google.maps.Point(0, 0),
anchor: new google.maps.Point(0, 42)
};
var shape = {
coords: [0, 0, 35, 42],
type: 'rect'
};
for (var i = 0; i < thePins.length; i++) {
var pin = thePins[i];
var contentString = pin[0];
var infowindow = new google.maps.InfoWindow({
content: contentString,
maxWidth: 200
});
var marker = new google.maps.Marker({
position: {lat: pin[1], lng: pin[2]},
map: map,
icon: image,
//shape: shape,
title: pin[0],
zIndex: pin[3]
});
marker.addListener('click', function() {
infowindow.open(map, marker);
});
}
}
由于变量提升,所有marker
和infowindow
引用都指向相同的变量,其声明基本上被移到包含函数的顶部。
您要么需要将创建的处理程序包装在匿名函数中,要么将其移动到一个单独的常规函数中。例如
function addMarker(pin, map, image, contentString) {
var infowindow = new google.maps.InfoWindow({
content: contentString,
maxWidth: 200
});
var marker = new google.maps.Marker({
position: {lat: pin[1], lng: pin[2]},
map: map,
icon: image,
title: pin[0],
zIndex: pin[3]
});
marker.addListener('click', function() {
infowindow.open(map, marker);
});
}
for (var i = 0; i < thePins.length; i++) {
var pin = thePins[i];
var contentString = pin[0];
addMarker( pin, map, image, contentString);
}
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 定义完全独立的样式信息
- 使用html2canvas获取基本信息
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 从信息框调用弹出图像库
- 如何在不传递此信息的情况下查找被调用的元素
- 将谷歌自动完成地址信息放在页面上,而不是表格中
- 如何通过解析类信息来使用jQuery创建类
- 包含数据库中相关信息的开放模态
- 单击按钮即可在浏览器的新选项卡中打开 Sapui5 详细信息页面
- 如何调整信息窗口的大小并点击按钮?+更改信息窗口的内容
- ng在更新$scope后重复不更新信息
- 谷歌地图点击潜水触发信息窗口
- 根据CHECKBOX输入值动态更新DIV信息
- 如何使用ember.js在操作中传递当前上下文中目标旁边的信息
- Jquery on单击“显示信息”
- 将FlowPlayer嵌入谷歌地图信息窗口
- AEM(cq5)使用组件内的信息
- 如何在完整日历中的当天点击时显示活动详细信息
- 使用javascript后台脚本获取Yotutube频道信息