【问题标题】:How can I pass arguments to addEventListener listener function? [duplicate]如何将参数传递给 addEventListener 侦听器函数? [复制]
【发布时间】:2012-10-16 06:47:24
【问题描述】:

可能重复:
Javascript closure inside loops - simple practical example
Please explain the use of JavaScript closures in loops

for (var i = 0; i < pois.length; i++) {
    pois[i].marker.addEventListener('dblclick', function (data) {
        var infoWindow = new BMap.InfoWindow(pois[i].address, opts);  
        map.openInfoWindow(infoWindow, map.getCenter());     
    })
}

这是我的代码。
显然这里有错误

new BMap.InfoWindow(pois[i].address, opts);

如何在 pois[i].marker 监听函数中使用 pois[i].address ?

【问题讨论】:

  • 您使用的是哪个版本,pois[] 代表什么?

标签: javascript addeventlistener


【解决方案1】:
for (var i = 0; i < pois.length; i++) {
    setupEventListener(pois[i]);
}

function setupEventListener(obj) {
    var address = pois[i].address;
    obj.marker.addEventListener('dblclick', function (data) {
        var infoWindow = new BMap.InfoWindow(address, opts);  
        map.openInfoWindow(infoWindow, map.getCenter());     
    });
}

【讨论】:

  • 非常感谢!关闭太不可思议了!
猜你喜欢
  • 2010-09-20
  • 1970-01-01
  • 2022-01-21
  • 2019-03-29
  • 2017-10-05
  • 2012-08-15
  • 2011-09-18
  • 2012-11-14
相关资源
最近更新 更多