我在数组中有几个标记(传单),例如
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());
}