Leaflet地图事件“load”不触发。

20

我正在尝试在leaflet 1.0.1加载成功后调用一个函数。根据文档,有一个名为load的地图事件,它表示:当地图初始化(第一次设置其中心和缩放时)时触发。因此,如果地图已经加载,则应该触发此段代码,但从未发生:

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

mymap.on('load', onMapLoad);

没有错误或响应,什么也没有发生。

那么为什么地图加载事件不能正常工作呢?

这里有一个简单的 JS FIDDLE

3个回答

26
我建议您使用Leaflet 1.0.1中提供的"whenReady"方法。
var callBack = function () {
    console.log("Map successfully loaded");
    // do some stuff
};

mymap.whenReady(callBack);

24

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

所以你的实际代码应该像这样:

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

来源: Github问题


1
或者使用内联方式
var mymap = L.map('YOUR_MAP_ID').on('load', onMapLoad).setView([51.505, -0.09], 13);

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接