传单地图事件 'load' 不触发

Leaflet map-event 'load' does not fire

我正在尝试在使用传单 1.0.1 成功加载传单地图后调用一个函数。关于 docs there is a map event named load,它指出:在地图初始化时触发(当它的中心和缩放首次设置时)。所以这个片段应该触发,如果地图已经加载,但那永远不会发生:

function onMapLoad() {
    alert("Map successfully loaded")
};

mymap.on('load', onMapLoad);

没有错误或响应,简单的没有。 那么为什么地图加载事件无法正常工作?

这是一个简单的 JS FIDDLE

在实际加载地图之前放置 mymap.on('load', onMapLoad); 事件处理程序(使用 map.setView...)。

所以你的实际代码应该是这样的,

var mymap = L.map('mapid');
mymap.on('load', onMapLoad);
mymap.setView([51.505, -0.09], 13);

来源:Github Issue

或使用内联

var mymap = L.map('YOUR_MAP_ID').on('load', onMapLoad).setView([51.505, -0.09], 13);

function onMapLoad(){
  console.log("map loaded");
}

我建议您使用 Leaflet 1.0.1 中提供的 "whenReady" 方法

var callBack = function () {
    console.log("Map successfully loaded");
    // do some stuff
};

mymap.whenReady(callBack);