0

有没有标准的方法来分离 GWT 中的 MouseClick 和 MouseDown 事件?

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

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

4

1 回答 1

6

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

问题是,在一般情况下,ClickEvent包括MouseDownEvent并且 MouseUpEvent 没有它们就不能发生。MouseDownEventMouseUpEvent前面ClickEventClickEvent方法同上DoubleClickEvent。但MouseDownEvent不保证ClickEvent会发生。

  • MouseDownEvent每次用户按下任何元素内的鼠标按钮之一时都会发生。

  • MouseUpEvent当用户释放任一鼠标按钮时发生。

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

ClickEvent是当鼠标在元素上向下然后向上时生成的。但是,鼠标必须停留在同一个元素内,否则不会发生。

例如,您按下鼠标并移出元素并释放它。ClickEvent不会生成,但MouseDownEvent在这种情况下会生成。

如果您按下鼠标并移出元素,然后移回,然后释放它。ClickEvent会发生。也MouseDownEventMouseUpEvent意志。

如果用户确实点击了,那么这是事件序列:

  1. 鼠标按下事件
  2. MouseUp事件
  3. 点击事件

ClickEvent仅在用户释放鼠标按钮后触发。

Butt 有一种方法可以在ClickEvent不生成MouseDownEventand的情况下创建MouseUpEvent

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

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

  • 单击链接上的右键并选择下拉列表中的一项(仅在这种情况下MouseDownEventMouseUpEvent触发)
  • 您也可以拿起一个链接并将其拖动到新标签
于 2012-05-24T01:52:48.850 回答