javascript - 使用 `For` 循环平移到标记

标签 javascript arrays leaflet

我在数组中有几个标记(传单),例如

var marker1 = L.marker(...);
var marker2 = L.marker(...);
...

添加到数组中

var markerArray = [];
markerArray.push(marker1);
markerArray.push(marker2);
...

现在我需要使用 For 循环来创建一个平移到我单击的标记的函数。我尝试了这段代码,但它不起作用。

for (var i = 0; i < markerArray.length; i++) {
    markerArray[i].on("click", function() {
        mymap.panTo(markerArray[i].getLatLng());    
    })
};

有什么帮助吗?

最佳答案

您所做的是将事件处理程序附加到标记(请参阅 doc )。

在事件处理程序中,标记是事件的目标 (e.target)。

for (var i = 0; i < markerArray.length; i++) {
    markerArray[i].on("click", function(e) {
        mymap.panTo(e.target.getLatLng());    
    })
};

您可以用另一种方式编写它,以实现 i 变量在事件处理程序中没有意义:

for (var i = 0; i < markerArray.length; i++) {
    markerArray[i].on("click", markerClicked);              
};

function markerClicked(e) {
    mymap.panTo(e.target.getLatLng()); 
}

关于javascript - 使用 `For` 循环平移到标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40984136/

相关文章:

javascript - 放大和缩小时如何避免 Canvas 元素中圆形标记的不必要的填充不透明度变化?

javascript - 使用 Leaflet.js 创建自定义标记在 map 上添加多个标记

javascript - 仅当字体本地不可用时才加载 webfont

php - 变量内的数组

javascript - native 元素的大小为零

c++ - C中指向二维数组的二维指针

C 编程 - 如何使用 While 循环将用户的值保存在数组中

javascript - 这个函数可以清理html吗?

javascript - 查找最后一个单词字符的索引(例如 :/\w/) in a string with JS

javascript - KineticJS 中的 Mouseover 事件问题