我在传单地图中有一个弹出窗口,可以通过单击其右上角的“ x”将其关闭。如何使click事件不会传播到地图本身?
我已经尝试在许多地方和形式中使用preventPropagate(),但是它们似乎都不起作用。
我最新的代码如下所示:
<div class="actions" @click="stopPropagation($event)">
(...)
stopPropagation(e) {
e.stopPropagation()
}
上面的div(.actions)是弹出窗口的主要div。
我也尝试过在父组件的弹出窗口的组件标签中单击以调用该函数,但结果是相同的,这意味着单击“ x”会按预期关闭弹出窗口,但也会导致地图中的click事件背后。
我使用Vue和vue2-leaflet。
我感谢你们的任何见解。谢谢!
更新:实际上,单击在弹出位置中无关紧要,它总是传播到后面的地图上。
因此,作为参考,这是我的解决方案:
<div class="actions" @click="someMethod($event)">
(...)
someMethod(e) {
(... some code)
return false
}
命令“返回假”解决了我的问题。
我尝试使用'@ click.stop',但是它给了我'$ event.stopPropagation()不是函数'错误。如果我从函数内部运行'e.stopPropagation()',也会发生相同的情况。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句