在 HERE 地图上显示上下文菜单
Display context menu over HERE map
使用 HERE 地图,我想在右键单击(或长按)时显示上下文菜单。
开发人员指南将 valid mouse/touch events 列为:
- 指针向下
- 向上指针
- 指针移动
- 指针输入
- 指针离开
- 指针取消
- 拖动开始
- 拖动
- 龙
- 点击
- dbltap
这意味着我必须查看 tap
事件上的检查按钮,但 API 文档还描述了一个 ContextMenuEvent 对象,声明:
ContextMenuEvent should be fired, when a user right-clicks or longpresses on a map object.
上面列出的哪个事件构成了 "right-click" 或 "longpress" 事件,接收到这个 ContextMenuEvent
对象?
在 HERE 地图上有一个上下文菜单的功能示例 here,但在当前文档中没有提及,它似乎使用了旧版本的 API。是否删除了生成上下文菜单的功能?
一时兴起,我尝试附加到事件类型 contextmenu
,结果成功了!显然这只是他们的文档中缺少的。
- 上下文菜单
如果您已经在侦听“点击”事件,则可以使用另一种方法来处理右键单击。在点击事件对象上的 originalEvent
属性 中,HERE Maps 向 PointerEvent 对象添加了一个 which
属性,这似乎表明使用了哪个按钮来触发事件。左键单击的值为 1
,中键单击的值为 2
,右键单击的值为 3
。
考虑到这一点,您可以通过执行类似于以下的操作来修改点击事件以处理不同的鼠标按钮:
map.addEventListener("tap", function (evt) {
switch (evt.originalEvent.which) {
case 1: // Left-click
handleLeftClick(evt);
break;
case 3: // Right-click
handleRightClick(evt);
break;
default:
// Do something else for other buttons, if you want
break;
}
});
请记住,which
不是 PointerEvent interface 的一部分,因此 HERE 地图将来可能会更改或破坏此行为。
使用 HERE 地图,我想在右键单击(或长按)时显示上下文菜单。
开发人员指南将 valid mouse/touch events 列为:
- 指针向下
- 向上指针
- 指针移动
- 指针输入
- 指针离开
- 指针取消
- 拖动开始
- 拖动
- 龙
- 点击
- dbltap
这意味着我必须查看 tap
事件上的检查按钮,但 API 文档还描述了一个 ContextMenuEvent 对象,声明:
ContextMenuEvent should be fired, when a user right-clicks or longpresses on a map object.
上面列出的哪个事件构成了 "right-click" 或 "longpress" 事件,接收到这个 ContextMenuEvent
对象?
在 HERE 地图上有一个上下文菜单的功能示例 here,但在当前文档中没有提及,它似乎使用了旧版本的 API。是否删除了生成上下文菜单的功能?
一时兴起,我尝试附加到事件类型 contextmenu
,结果成功了!显然这只是他们的文档中缺少的。
- 上下文菜单
如果您已经在侦听“点击”事件,则可以使用另一种方法来处理右键单击。在点击事件对象上的 originalEvent
属性 中,HERE Maps 向 PointerEvent 对象添加了一个 which
属性,这似乎表明使用了哪个按钮来触发事件。左键单击的值为 1
,中键单击的值为 2
,右键单击的值为 3
。
考虑到这一点,您可以通过执行类似于以下的操作来修改点击事件以处理不同的鼠标按钮:
map.addEventListener("tap", function (evt) {
switch (evt.originalEvent.which) {
case 1: // Left-click
handleLeftClick(evt);
break;
case 3: // Right-click
handleRightClick(evt);
break;
default:
// Do something else for other buttons, if you want
break;
}
});
请记住,which
不是 PointerEvent interface 的一部分,因此 HERE 地图将来可能会更改或破坏此行为。