传单地图 - 事件“加载”不会触发

问题描述 投票:4回答:3

我正在尝试在成功加载传单映射后调用函数,使用传单1.0.1。关于docs,有一个名为load的地图事件,其中指出:初始化地图时触发(当第一次设置其中心和缩放时)。因此,如果地图已加载,则此剪切应该触发,但这种情况永远不会发生:

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

mymap.on('load', onMapLoad);

没有错误或反应,简单没有。那么为什么map-load事件不能正常工作呢?

这是一个简单的JS FIDDLE

javascript leaflet onload
3个回答
10
投票

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

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

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

资料来源:Github Issue


1
投票

我建议你使用Leaflet 1.0.1中提供的“whenReady”方法

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

mymap.whenReady(callBack);

0
投票

或者使用内联

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

function onMapLoad(){
  console.log("map loaded");
}
© www.soinside.com 2019 - 2024. All rights reserved.