我描述了鼠标事件以及触摸事件的以下问题。我想做以下事情。具有具有以下功能的单击/选项卡区域:
- 如果我在该区域按下鼠标/触摸开始,则应显示 GWT PopupPanel。
- 当鼠标仍然被按下/触摸没有被释放时,PopupPanel 应该能够处理诸如 MouseOverEvent / TouchStartEvent 之类的事件。
我可以设法让 PopupPanel 发生。但是,由于鼠标仍然被按下/触摸未释放,因此 PopupPanel 上不会触发任何事件。我在 PopupPanel 中使用 FocusPanel 还是 mgwt TouchPanel 都没有关系。如果我在按下 Mouse 或 Touch 的情况下进入 PopupPanel,则不会触发事件。
PopupPanel 的作用:
PopupPanel 应该用作上下文菜单,可以在其中进行选项卡,弹出菜单出现,在弹出菜单上滑动(不释放鼠标/手指)并在将选择的菜单项上释放鼠标或手指。
当事件在外面开始时,有没有办法在 PopupPanel 内启用事件?我可以在 PopupPanel 发生时触发 mousedown 或 touch start 事件,以便我可以在 PopupPanel 外部开始单击/触摸时使用事件吗?
下图显示了这种情况:
编辑:
顺便说一句,我使用 GWT-Platform 的 PopupPresenter。这会在之前的页面末尾添加一个 PopupPanel
我尝试了以下。我在页面创建后立即开始触摸事件之前放置了页面的 PopupPanel。结构是这样的。
<body>
< div />
< div />
<gwt-PopupPanel />
</body>
然后我隐藏了弹出窗口并在触摸开始时显示它。再次没有触发事件,因为当弹出窗口可见时,鼠标被按下/手指仍在显示屏上。
编辑:这是这个案例的示例项目:https ://github.com/confile/popup-test