我正在尝试编写一个函数,它给出了一个lat& long,名称和图片作为形式参数,因此点击时将显示地图上的标记:名称和图片。
它似乎有效,但是当我添加多个标记时,最后一个调用的实际参数将传递给所有。因此,每点击Marker
,都会弹出相同的名称和图片。
我不知道我在这里做错了什么,因为我认为我把所有事情做好了。
这是我的代码的一部分
在我的Initialise()
函数中,我声明了以下内容:
var marker = add_marker(51.21904,4.32659000000001,"Iggy Jensen","bro.jpg");
fluster.addMarker(marker);
var marker = add_marker(51.20367,4.341480000000047,"John Doe","bro.jpg");
fluster.addMarker(marker);
var marker = add_marker(51.2041539954234,4.327017528991746,"Joske Vermeulen","bro.jpg");
fluster.addMarker(marker);
add_marker函数由我自己编写addMarker是我使用的集群管理系统Fluster2的一部分。
function add_marker(lat,lng,name,pic) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat,lng),
map: map,
icon: 'icon.png',
title: name
});
infoBubble = new InfoBubble({
maxWidth: 300,
backgroundColor: '#dedddd',
borderWidth: 2,
borderColor: 'rgb(68, 68, 68)'
});
var contentString = '<div id="content">'+
'<h2>'+name+'</h2>'+
'<p><span class="myLabel" style="margin-right:10px">Age </span>21</p>'+
'<p><center><img src="'+pic+'" class="bro_image"></center> </p>'+
'</div>';
var div = document.createElement('DIV');
div.innerHTML = 'No pictures uploaded by this user.';
infoBubble.addTab('Personal', contentString);
infoBubble.addTab('Pictures', div);
google.maps.event.addListener(marker, 'click', function() {
if (!infoBubble.isOpen()) {
infoBubble.open(map, marker);
}
});
return marker;
}
function addTab() {
var title = document.getElementById('tab-title').value;
var content = document.getElementById('tab-content').value;
if (title != '' && content != '') {
infoBubble.addTab(title, content);
}
}
任何帮助表示赞赏!提前谢谢!
答案 0 :(得分:1)
只需在var
定义之前添加“infoBubble
”,否则每次将新的InfoBubble
对象分配给相同的全局变量时:
var infoBubble = new InfoBubble({
// ^---------here it is