0

我正在尝试编写一个函数,它提供一个经纬度、一个名称和一张图片作为形式参数,因此单击时地图上会显示一个标记:名称和图片。它似乎有效,尽管当我添加多个标记时,最后一次调用的实际参数被传递给所有。所以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);
    }
  }

任何帮助表示赞赏!提前致谢!

4

1 回答 1

1

var只需在定义之前添加“ ” infoBubble,否则每次将新InfoBubble对象分配给同一个全局变量时:

  var infoBubble = new InfoBubble({
// ^---------here it is
于 2012-07-22T12:55:19.237 回答