2012-05-23 34 views
0

有沒有一種標準的方法來分離GWT中的MouseClick和MouseDown事件?GWT MouseClickEvent vs MouseDownEvent

如果我單擊並按住按鈕,我仍然會將MouseClick事件與MouseUp一起使用。

如果我只是點擊我仍然與MouseClick一起獲得MouseDown事件。

回答

6

這些事件有一些差異。處理特定情況下需要的事件。

事情是在一般情況下ClickEvent包括MouseDownEventMouseUpEvent並且不能在沒有它們的情況下發生。 MouseDownEventMouseUpEvent優先於ClickEvent。與ClickEvent相同的方式在DoubleClickEvent之前。但MouseDownEvent不保證將發生ClickEvent

  • MouseDownEvent發生每當上的任何元素內的鼠標按鈕中的一個用戶按下。

  • MouseUpEvent當用戶釋放某個鼠標按鈕時發生。

  • ClickEvent由這兩個事件組成。出現ClickEvent這兩個事件在同一元素上時發生。它就像是鼠標向下和鼠標向上事件的組合。 ClickEvent僅生成鼠標左鍵,與MouseDownEventMouseUpEvent不同。

這是ClickEvent當鼠標是先降後升,而在一個ELEM產生。 但是,鼠標必須保持在相同的元素內,否則不會發生。

例如,您按下鼠標並移到元素外部並釋放它。 ClickEvent將不會生成,但MouseDownEvent將在這種情況下。

如果你按下鼠標並移動到元素外面,然後再移回,然後釋放它。 ClickEvent將會發生。而MouseDownEventMouseUpEvent也會。

如果用戶沒有點擊,那麼這是事件的順序:

  1. MouseDownEvent
  2. MouseUpEvent
  3. ClickEvent用戶已經發布了他的鼠標按鈕

ClickEvent大火之後。

對接有沒有產生的MouseDownEventMouseUpEvent創建ClickEvent的方式:如果用戶使用Tab鍵將焦點移動到鏈接,然後按Enter

  • 點擊事件會火,但鼠標按下和MouseUp事件不會。一個鏈接

    • 點擊右鍵,然後在下拉列表中的項目選擇(在這種情況下,只有MouseDownEventMouseUpEvent將火)

    或者,您可以打開鏈接,而不會產生ClickEvent

  • 你也可以拿起並拖動一個鏈接到一個新標籤