本文主要是介绍mapbox js map监听on off 匹配问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题缘由请参考如下
mapbox图层的点击事件注册一次之后无法取消的问题
https://blog.csdn.net/weixin_44523653/article/details/103665583
mapbox api中描述
所以listener必须为实名的外部函数,而listener中除了event事件对象,没有可传递参数的位置。如何解决?当map.on和map.off在不同的作用域中时,更加麻烦。
mapbox奇葩的是
on:listener中
_self.popup = new mapboxgl.Popup().setLngLat(_coordinates).setHTML(_showInfo).addTo(_self.map);
off:之后
_self.popup&&_self.popup.remove();
这样一一对应才能够关闭气泡。太狭隘了。。。。。。
整个模块多次进行加载和移除,如果on没有对应的执行off,on里面的listenter函数内容就会被执行多次。
结合以上情况,使用AMD开发时,坑还挺多。解决办法如下
使用临时内部函数处理对象点击,可以调用方法里面的模块局部变量,同时用self提升作用域范围指向外部,供off调用,解决。。。。。。。。。。。。。。。。
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
查看popup弹出的内容都在div里面,采用最原始的的办法解决,实现所有popup关闭
$(".mapboxgl-popup").remove();
这篇关于mapbox js map监听on off 匹配问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!