Google maps “如何访问”;这";谷歌地图事件中的标记?

Google maps “如何访问”;这";谷歌地图事件中的标记?,google-maps,google-maps-api-3,google-maps-markers,Google Maps,Google Maps Api 3,Google Maps Markers,我有任意数量的谷歌地图标记。我正在遍历它们并添加事件侦听器: for ( i in markers ) { google.maps.event.addListener(markers[i], 'dragend', function() { console.log( this ); //<-- this doesn't work } } 如何访问触发事件的相对标记对象?您的第一个示例应该可以正常工作,但存在语法错误,缺少括号 for (var i in markers

我有任意数量的谷歌地图标记。我正在遍历它们并添加事件侦听器:

for ( i in markers )
{
  google.maps.event.addListener(markers[i], 'dragend', function()
  {
    console.log( this ); //<-- this doesn't work
  }
}

如何访问触发事件的相对标记对象?

您的第一个示例应该可以正常工作,但存在语法错误,缺少括号

for (var i in markers )
{
  google.maps.event.addListener(markers[i], 'dragend', function()
  {
    console.log( this); 
  });
//-^
}

演示:

您的第一个示例应该可以正常工作,但有一个语法错误,缺少括号

for (var i in markers )
{
  google.maps.event.addListener(markers[i], 'dragend', function()
  {
    console.log( this); 
  });
//-^
}

演示:

后一种情况不起作用,因为新变量只在新函数作用域中引入,所以在每个回调中都是相同的
i
变量(大量重复)。传统的“双重闭包”和“函数-上下文绑定”一样有效。然而,Google Map API可能有一种标准的方法来解决这种情况——任何传递给回调的参数?您知道什么(文档使用命名函数来创建新的变量绑定,而不是匿名闭包,并且没有显示function.bind或类似的用法)后一种情况不起作用,因为新变量只在新函数作用域中引入,所以在每个回调中都是相同的
i
变量(大量重复)。传统的“双重闭包”和“函数-上下文绑定”一样有效。然而,也许Google Map API有一个标准的方法来解决这种情况——任何传递给回调的参数?你知道什么(文档使用了一个命名函数来创建新的变量绑定,而不是匿名闭包,并且它没有显示function.bind或类似的用法)我不确定我怎么会错过这个。谢谢,我不知道我怎么会错过。非常感谢。