7

我已经多次遇到这个问题,找不到任何全面的东西。我想知道 GWT 的所有有效可消费 DOM 事件的完整列表。

NativeEvent的GWT 文档说:

public final java.lang.String getType()
Gets the enumerated type of this event.
Returns:
the event's enumerated type

这个枚举在哪里?它真的存在吗?使用的实际代码(我发现)明确说明这些事件总是使用字符串:“click”、“contextmenu”、“mouseup”、“dblclick”等。(等等涵盖了很多模糊不清......)

我正在尝试为 CellTable ala this post中的单元格实现双击和右键单击。我正在传递 super("click", "contextmenu", "mouseup", "dblclick"); 在我的 AbstractCell 扩展的构造函数中。然后我覆盖了onBrowserEvent:

@Override

    public void onBrowserEvent(Context context, Element parent, ImageProperties<T> value,
            NativeEvent event, ValueUpdater<ImageProperties<T>> valueUpdater) {
        if (event.getButton() == NativeEvent.BUTTON_RIGHT) {
            event.stopPropagation();
            event.preventDefault();
            eventBus.fireEvent(new RightClickEvent<Context>(context, event));
        } else {
            super.onBrowserEvent(context, parent, value, event, valueUpdater);
        }
    }

但是,我遇到了两个问题。一,仍然会显示默认的 contextMenu(在我的自定义菜单上)——更不用说它甚至不使用 DOM 事件类型。另一个问题,我如何检查它是否是双击事件?我很难相信它实际上是一组任意字符串......

提前致谢!约翰

4

2 回答 2

4

原生 JavaScript DOM 事件类型实际上是任意字符串,并且对给定事件类型(及其名称)的支持可能取决于浏览器。

于 2011-03-05T01:23:06.997 回答
3

您正在查找的枚举确实存在BrowserEvents 类中。您应该使用这些常量而不是“神奇的”字符串文字。

于 2013-02-04T11:57:46.200 回答