【问题标题】:Gmaps API - Adding event listener on loop always points to the last markerGmaps API - 在循环上添加事件侦听器始终指向最后一个标记
【发布时间】:2013-11-26 18:46:55
【问题描述】:

Heloo 在那里。

我有一个标记数组。

然后我正在循环,并为每个事件添加一个点击事件:

google.maps.event.addListener(marker, 'click', function(){ 
   //Logic using position goes here
}

问题是无论我点击哪个位置总是从最后添加的标记开始。

我不知道我做错了什么。

【问题讨论】:

  • 你是在循环中添加监听器吗?
  • 对。我也在循环中创建标记本身。该数组仅包含信息。
  • 您想为每个标记或其他内容打开不同的信息窗口?
  • infoWindow 上有一个按钮,它调用一个函数,该函数将使用该位置进行一些处理...
  • 我认为你受到了闭包的影响:如果你想追求一个例子:developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Closures

标签: javascript google-maps events google-maps-api-3 google-maps-markers


【解决方案1】:

如果position 只是您每次通过循环更新的变量,那么您正在创建的事件处理函数都将共享同一个变量并使用其当前值。

请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Closures 的“在循环中创建闭包:一个常见错误”部分以获取解释。

【讨论】:

    猜你喜欢
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    相关资源
    最近更新 更多