Leaflet 地图框鼠标右键单击

Leaflet 地图框鼠标右键单击,leaflet,mapbox,Leaflet,Mapbox,我正在使用L.map上下文菜单来监听地图上的右键单击。但是,当我右键单击地图时,除了触发contextmenu事件外,它还触发mousedown事件,MouseEvent数据不指示按下了哪个鼠标按钮,因此除了“right press”代码外,还会执行“left press”代码。有没有办法绕过这个问题 提前谢谢 Tony如果要收听左键单击,则必须使用单击事件;如果要收听右键单击,则必须使用上下文菜单事件。单击鼠标左键和右键将触发mousedown事件。它做的正是它应该做的。您好,iH8,恕我直言

我正在使用L.map上下文菜单来监听地图上的右键单击。但是,当我右键单击地图时,除了触发contextmenu事件外,它还触发mousedown事件,MouseEvent数据不指示按下了哪个鼠标按钮,因此除了“right press”代码外,还会执行“left press”代码。有没有办法绕过这个问题

提前谢谢


Tony

如果要收听左键单击,则必须使用
单击
事件;如果要收听右键单击,则必须使用
上下文菜单
事件。单击鼠标左键和右键将触发
mousedown
事件。它做的正是它应该做的。

您好,iH8,恕我直言。我将mousedown与mousemove和mouseup结合使用来处理我自己的图形,以选择标记组、通过多次单击来测量距离等。我不能出于我的目的使用单击。通常期望能够确定在mousedown、mousemove和mouseup事件中按下了哪个鼠标按钮。即使是原始JavaScript也允许您检查事件。这将决定鼠标按钮的按下。我有点困惑,为什么您不能在项目中使用click事件。也许您可以在问题中给出一个代码示例,以便我们理解?听起来有点像黑客当我在地图上捕捉传单
mousedown
事件时,我可以看到传递的
原始事件的
按钮
属性?你正在运行什么版本的传单?我正在使用Mapbox 2.2.2。Snkashis,你说得对,MouseeEvent事件数据中有一个原始事件。对不起,我不知怎么错过了这个。例如,在一组标记周围绘制一个矩形来选择它们。我捕获mousedown位置,然后使用mousemove事件(拖动排序)绘制选择框,在mouseup中,通过确定选择矩形内的标记来完成选择。如果您仍然想要一个代码示例,请告诉我。