GWT MouseClickEvent与MouseDownEvent

时间:2012-05-23 18:35:49

标签: gwt

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

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

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

1 个答案:

答案 0 :(得分:6)

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

在一般情况下,ClickEvent包含MouseDownEventMouseUpEvent并且不能在没有它们的情况下进行。 MouseDownEventMouseUpEvent位于ClickEvent之前。与ClickEvent之前的DoubleClickEvent相同。但是MouseDownEvent并不保证ClickEvent会发生。

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

  • 当用户释放任何一个鼠标按钮时,会发生
  • MouseUpEvent

  • ClickEvent包含这两个事件。 ClickEvent在同一元素上发生这两个事件时发生。它类似于鼠标按下和鼠标按下事件的组合。与ClickEventMouseDownEvent不同,仅为鼠标左键生成MouseUpEvent

当鼠标向下然后超过elem时,会生成ClickEvent ClickEvent。 但是,鼠标必须保持在同一元素内,否则不会发生。

例如,您按下鼠标并移动到元素外部并释放它。 <{1}}不会生成,但在这种情况下会MouseDownEvent

如果您按下鼠标并向外移动元素,然后再移回,则将其释放。 ClickEvent将会发生。 <{1}}和MouseDownEvent也是如此。

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

  1. MouseDownEvent
  2. MouseUpEvent
  3. ClickEvent
  4. MouseUpEvent仅在用户释放鼠标按钮后才会触发。

    可以在不生成ClickEventClickEvent的情况下创建MouseDownEvent

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

    或者,您可以在不生成MouseUpEvent的情况下打开链接:

    • 点击链接上的右键,然后选择下拉列表中的项目(在这种情况下只有ClickEventMouseDownEvent将会触发)
    • 您也可以选择并将链接拖到新标签页