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