GWT MouseClickEvent与MouseDownEvent

And*_*gin 0 gwt

有没有一种标准方法可以在GWT中分离MouseClick和MouseDown事件?

如果我单击并按住按钮,我仍然会与MouseUp一起获得MouseClick事件.

如果我只是单击我仍然与MouseClick一起获得MouseDown事件.

kap*_*and 6

这些事件有一些差异.处理特定情况下您需要的事件.

问题在于,在一般情况下ClickEvent包括MouseDownEvent并且 MouseUpEvent 不能在没有它们的情况下进行.MouseDownEvent并且MouseUpEvent先于ClickEvent.和ClickEvent先前一样DoubleClickEvent.但是MouseDownEvent并不保证ClickEvent会发生这种情况.

  • MouseDownEvent 每当用户按下任何元素内的一个鼠标按钮时,就会发生这种情况.

  • MouseUpEvent 当用户释放任何鼠标按钮时发生.

  • 并且ClickEvent由这两个事件组成.ClickEvent当同一元素上存在这两个事件时发生.它类似于鼠标按下和鼠标按下事件的组合.ClickEvent仅与鼠标左键生成,不像MouseDownEvent和MouseUpEvent.

这ClickEvent是在鼠标向下然后上升而超过elem时生成的.但是,鼠标必须保持在同一元素内,否则不会发生.

例如,您按下鼠标并移动到元素外部并释放它.ClickEvent将不会生成,但MouseDownEvent在这种情况下.

如果您按下鼠标并向外移动元素,然后再移回,则将其释放.ClickEvent会发生.也MouseDownEvent有MouseUpEvent意志.

如果用户单击了,则这是事件序列:

  1. MouseDownEvent
  2. MouseUpEvent
  3. ClickEvent

ClickEvent 仅在用户释放鼠标按钮后才会触发.

但是有一种方法可以创建ClickEvent而不会生成MouseDownEvent和MouseUpEvent:

  • 如果用户使用Tab键将焦点移动到链接并按Enter键,则会触发click事件,但MouseDown和MouseUp事件不会触发.

或者,您可以打开链接而不生成ClickEvent:

  • 点击右键中的链接并选择下拉列表中的项目(仅在这种情况下MouseDownEvent和MouseUpEvent必火)
  • 您也可以选择并将链接拖到新标签页