停止 Leaflet 事件传播
Halt Leaflet event propagation
我正在做一个使用 Leaflet 的项目。我在浏览器 div 中渲染了一张大地图,当用户单击某个元素时,我在其上方渲染了一个弹出窗口 div(使用 z 顺序)。
问题是,如果您单击 'pop up window' 并拖动,传单会拖动底层地图,就好像 div 不存在一样。如果我在 div 中放置一个 select 下拉列表,这会导致奇怪的行为,并且可能会禁止子 div.
中的任何拖放行为
如何阻止 div 将其边界内发生的事件发送到传单?我尝试使用 CSS 属性 指针事件,但这似乎没有任何作用。查看已发布的传单问题似乎也没有说明问题。
将事件侦听器附加到您的自定义弹出窗口,并在其上 运行 stopPropagation
and optionally preventDefault
。
Leaflet 有一些实用程序和缩写,例如:
L.DomEvent.on(divElementForMyCustomPopup, 'click mousedown', function(ev){
L.DomEvent.stop(ev);
});
我正在做一个使用 Leaflet 的项目。我在浏览器 div 中渲染了一张大地图,当用户单击某个元素时,我在其上方渲染了一个弹出窗口 div(使用 z 顺序)。
问题是,如果您单击 'pop up window' 并拖动,传单会拖动底层地图,就好像 div 不存在一样。如果我在 div 中放置一个 select 下拉列表,这会导致奇怪的行为,并且可能会禁止子 div.
中的任何拖放行为如何阻止 div 将其边界内发生的事件发送到传单?我尝试使用 CSS 属性 指针事件,但这似乎没有任何作用。查看已发布的传单问题似乎也没有说明问题。
将事件侦听器附加到您的自定义弹出窗口,并在其上 运行 stopPropagation
and optionally preventDefault
。
Leaflet 有一些实用程序和缩写,例如:
L.DomEvent.on(divElementForMyCustomPopup, 'click mousedown', function(ev){
L.DomEvent.stop(ev);
});