加载事件未在传单中触发
load event not firing in leaflet
我正在尝试在用户完成某些事件时在地图上执行业务逻辑。
I'm able to get working drag , dblclick and zoomstart events.
但是我没有触发加载事件。 (最初在浏览器加载时)
我的示例代码如下:
var map = L.map('map').setView([34.7320,-86.5966], 14);
map.on('load drag dblclick zoomstart', function() {
// My business logic goes here.
});
从 here 开始,您可以使用活动
'idle'
而不是
'load'
这可以在您调用 setView 时完成,这会使地图触发加载事件。
var map = L.map('map').on('load', function(){
// Your business logic here...
}).setView([34.7320,-86.5966], 14);
(或)
如果您只想在地图准备好后做点什么,请使用map.whenReady(fn)
:
map.whenReady(function(){
console.log('Map Loaded!');
});
更长的解释:
我遇到了同样的问题(使用 LeafletJS 1.6 和 1.7.1),'idle' 和 'load' 不会触发,除非我在设置 setView 之前定义它。
通过源代码挖掘我发现还有 map.whenReady(function(){});
对我有用,如果地图已经加载也可以。
所以代替:
map.on('load', function(){
console.log('Map Loaded!');
});
使用:
map.whenReady(function(){
console.log('Map Loaded!');
});
我正在尝试在用户完成某些事件时在地图上执行业务逻辑。
I'm able to get working drag , dblclick and zoomstart events.
但是我没有触发加载事件。 (最初在浏览器加载时)
我的示例代码如下:
var map = L.map('map').setView([34.7320,-86.5966], 14);
map.on('load drag dblclick zoomstart', function() {
// My business logic goes here.
});
从 here 开始,您可以使用活动
'idle'
而不是
'load'
这可以在您调用 setView 时完成,这会使地图触发加载事件。
var map = L.map('map').on('load', function(){
// Your business logic here...
}).setView([34.7320,-86.5966], 14);
(或)
如果您只想在地图准备好后做点什么,请使用map.whenReady(fn)
:
map.whenReady(function(){
console.log('Map Loaded!');
});
更长的解释: 我遇到了同样的问题(使用 LeafletJS 1.6 和 1.7.1),'idle' 和 'load' 不会触发,除非我在设置 setView 之前定义它。
通过源代码挖掘我发现还有 map.whenReady(function(){});
对我有用,如果地图已经加载也可以。
所以代替:
map.on('load', function(){
console.log('Map Loaded!');
});
使用:
map.whenReady(function(){
console.log('Map Loaded!');
});