gpt4 book ai didi

javascript - 在控制范围内检测层启用/禁用

转载 作者:行者123 更新时间:2023-12-02 15:18:29 25 4
gpt4 key购买 nike

要求:

我需要能够检测用户何时在传单的 map 控件内手动单击打开/关闭图层。

问题:

我发现了“overlayadd”和“overlayremove”事件,并尝试将我的逻辑附加到这些事件,但它们似乎也在我在代码中其他地方进行的直接“addLayer”和“removeLayer”调用期间触发。这太笼统了。我只关心用户何时发起操作。

我可以将监听器直接附加到控件复选框元素,并深入 DOM 以查找相应的层名称,但这比我想要的更多地依赖于它们的 HTML 结构,因为他们可以随心所欲地更改它。

是否有任何潜伏于 L.control 操作更具体的事件,或者是否有隐藏在 overlayadd/overlayremove 事件参数中的方法来检测触发该操作的原因? ...或者只是其他方法来实现这一点?

谢谢

最佳答案

L.Control.Layers clickhandler触发时,它将自己的“私有(private)”_handlingClick属性设置为true:

var marker = new L.Marker([0, 0]);

var control = new L.Control.Layers(null, {
'Marker': marker
}).addTo(map);

map.on('overlayadd overlayremove', function (e) {
if (control._handlingClick) {
// Executes only on input toggle, not on
// map.addLayer(marker) or map.removeLayer(marker)
}
});

关于javascript - 在控制范围内检测层启用/禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34278968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com