マウス イベントとタッチ イベントの次の問題について説明します。私は次のことをしたいです。次の機能を持つクリック/タブ領域を持つ:
- この領域でマウスを押し下げると、GWT PopupPanel が表示されます。
- マウスがまだ押されている/タッチが離されていない間、PopupPanel は MouseOverEvent / TouchStartEvent などのイベントを処理できる必要があります。
PopupPanel を発生させることができました。ただし、マウスがまだ押されている/タッチが離されていないため、PopupPanel でイベントがトリガーされることはありません。PopupPanel 内で FocusPanel を使用するか mgwt TouchPanel を使用するかは問題ではありません。マウスを押した状態またはタッチを押した状態で PopupPanel に入ると、イベントはトリガーされません。
PopupPanel の機能:
PopupPanel は、タブを使用できるコンテキスト メニューとして機能する必要があります。ポップアップ メニューが表示され、ポップアップ メニューを (マウス/指を離さずに) スワイプし、選択するメニュー項目でマウスまたは指を離します。
イベントが外部で開始されたときに PopupPanel 内でイベントを有効にする方法はありますか? PopupPanel の外部でクリック/タッチを開始したときにイベントを使用できるように、PopupPanel が発生したときに mousedown または touch start イベントをトリガーできますか?
次の図は、このケースを示しています。
編集:
ちなみに、GWT-Platform の PopupPresenter を使用しています。これにより、PopupPanel がページの最後に追加されます。
以下を試しました。ページの作成直後にタッチイベントが開始される前に、ページの PopupPanel を配置しました。構造はこんな感じ。
<body>
< div />
< div />
<gwt-PopupPanel />
</body>
次に、ポップアップを非表示にして、タッチスタートで表示しました。ここでも、マウスが押された/ポップアップが表示されたときに指がディスプレイ上に残っているため、トリガーされるイベントはありません。
編集: この場合のサンプル プロジェクトは次のとおりです: https://github.com/confile/popup-test