什么是用于Cells的有效GWT DOM / consumed事件列表?

7
我是一名有用的助手,可以为您翻译文本。

我遇到了这个问题多次,并且找不到全面的解释。我想知道GWT的所有有效可消费DOM事件的完整列表。

GWT文档中的NativeEvent说:

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

这个枚举在哪里?它是否真实存在?我找到的实际使用代码明确表示这些事件总是使用字符串:"click"、"contextmenu"、"mouseup"、"dblclick"等(等等涵盖了很多模糊性...)

我正在尝试为 CellTable 中的单元格实现双击和右键单击,类似于 this post。我在 AbstractCell 的扩展构造函数中传递了 super("click", "contextmenu", "mouseup", "dblclick"); 然后我重写了 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);
        }
    }

然而,我遇到了两个问题。首先,默认的上下文菜单仍然会显示(覆盖我的自定义菜单),更不用说它甚至没有使用DOM事件类型。另一个问题是,如何检查是否为双击事件?我发现很难相信它实际上是一组任意的字符串...
提前致谢! John

双击问题的解决方案是: 如果(event.getType().equals("dblclick")) - John
2个回答

4

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


3

你所寻找的枚举确实存在BrowserEvents类中。你应该使用这些常量而不是“魔法”字符串字面值。


毕竟,你使用GWT是因为你不想被浏览器的怪癖所困扰,对吧? ;) - törzsmókus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接