Javascript 是否可以在不使用说明书中的函数addTo(map)的情况下初始化事件?
对于传单,我正在使用以下命令查找加载层:Javascript 是否可以在不使用说明书中的函数addTo(map)的情况下初始化事件?,javascript,leaflet,Javascript,Leaflet,对于传单,我正在使用以下命令查找加载层: customLayer = L.tileLayer.xserver( customLayerUrl, { args }).addTo(map); 首先,您可能会注意到我使用了一个自定义函数(L.tileLayer.xserver),而不是传统的L.tileLayer 然后,该命令返回一个图像(光栅)和一些JSON格式的数据。我的目标是处理数据以创建我自己的标记,所以我不想在地图上绘制图像。为此,我需要等待响应下载结束 因此,在我声明这样的加载事件之后:
customLayer = L.tileLayer.xserver( customLayerUrl, { args }).addTo(map);
首先,您可能会注意到我使用了一个自定义函数(L.tileLayer.xserver),而不是传统的L.tileLayer
然后,该命令返回一个图像(光栅)和一些JSON格式的数据。我的目标是处理数据以创建我自己的标记,所以我不想在地图上绘制图像。为此,我需要等待响应下载结束
因此,在我声明这样的加载事件之后:customLayer.on('load',function(){…})代码>
在这个函数中,我有完整的数据,我可以处理它们。但是,当我使用addTo(map)传单绘制图层时,我不希望这样。
为了解决这个问题,我不使用“addTo(map)”,但在本例中,事件“load”不再被考虑在内。因此,我迫切需要一种方法来激活“加载事件”,而不使用addTo(映射)。或者更一般地说,我希望在L.tileLayer对象中使用数据,而不绘制图层
可能吗?你知道吗?你可以使用customLayer.fire('load')触发一个事件。
在我看来,“fire event”方法只允许触发一个事件。因此,如果我使用成对的AddEventListener,那么我将触发调用回调但数据尚未准备好的事件。我尝试在侦听事件的对象中注册回调。而且我的回调只能在数据加载时调用,而不能在加载之前调用。我在传单-src.js中查找事件是如何注册的,以及它们是如何仅在瓷砖准备好时触发的。您可以发送一个包含fire事件的数据对象。但我不知道这是否有帮助。还可以尝试调用.addTo(map)
,并在load
事件中调用map.removeLayer(customlayer)