Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 事件单击动态变量_Javascript_Google Maps_Events - Fatal编程技术网

Javascript 事件单击动态变量

Javascript 事件单击动态变量,javascript,google-maps,events,Javascript,Google Maps,Events,大家好,我有一个使用谷歌地图的网站。 问题是:我在地图中添加了一些标记,我希望每个标记如果被单击,都会通知我它的数据。 对于我的代码,警报只出现在最后一个(test9),因为变量是相同的。如何添加动态变量的侦听器? 这是我的代码: for (i = 0; i<10; i++){ myLatlng = new google.maps.LatLng((44.900)+(i/10), 11.634521); var marker = new google.maps.Marker(

大家好,我有一个使用谷歌地图的网站。 问题是:我在地图中添加了一些标记,我希望每个标记如果被单击,都会通知我它的数据。 对于我的代码,警报只出现在最后一个(test9),因为变量是相同的。如何添加动态变量的侦听器? 这是我的代码:

for (i = 0; i<10; i++){
    myLatlng = new google.maps.LatLng((44.900)+(i/10), 11.634521);
    var marker = new google.maps.Marker({
      position: myLatlng,
      map: map,
      title:"Hello World!"+i,
      data:"test"+i
    });
    google.maps.event.addListener(marker, 'click', function() {
      alert(marker.data);
    });
}   

for(i=0;iOk)尝试添加一个新函数,如addMarkerFunction(marker)

比如

    function addMarkerFunction(marker){
      google.maps.event.addListener(marker, 'click', function() {
    alert(marker.data);
      });
    }
然后将for循环代码编辑为:

  for (i = 0; i<10; i++){
myLatlng = new google.maps.LatLng((44.900)+(i/10), 11.634521);
var marker = new google.maps.Marker({
  position: myLatlng,
  map: map,
  title:"Hello World!"+i,
  data:"test"+i
});
  addMarkerFunction(marker);
 }   

for(i=0;i如果您将alert(marker.data)更改为alert(this.data),会发生什么情况;我认为这里有一个关闭问题,其他人可能更擅长解释!是的,但如果我不想使用“this”?可能吗?@TommyBs只是出于好奇,为什么不使用“this”?我的代码更复杂,我想知道这个问题是否可以用“dynamic”变量解决。我可以使用“this”,但我想知道是否有其他方法可以使用“marker”仅此:)@TommyBs