我已多次遇到此问题,但找不到任何全面的内容。我想知道GWT的所有有效消耗DOM事件的完整列表。
NativeEvent的GWT docs说:
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中的单元格实现双击和右键单击。我正在通过超级(“点击”,“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事件类型。一个不同的问题,我如何检查它是否是一个双击事件?我发现很难相信它实际上是一组任意的字符串......
提前致谢! 约翰
答案 0 :(得分:4)
原生JavaScript DOM事件类型really are arbitrary strings以及对给定事件类型(及其名称)的支持可能取决于浏览器。
答案 1 :(得分:3)
BrowserEvents class中您要查找的确实存在。你应该使用那些常量而不是“魔术”字符串文字。