我试过以下没有成功;不知何故,所有标记都指向同一页面,这是最后分配的URI.
var markers = [ { coords: [51.505,-0.09],uri: '/some-page' },... ]; for(x in markers) { L.marker(markers[x].coords).on('click',function() { window.location = markers[x].uri; }).addTo(map); }
这个问题真让我疯了.
所以最终的解决方案很简单:
var x = markers.length; while(x--) { L.marker(markers[x].coords).on('click',function(e) { window.location = markers[e.target._leaflet_id].uri; }).addTo(map)._leaflet_id = x; }
(我用反向while循环替换了for-in循环)