我正在尝试在GWT中实现点击记录系统,因此我知道人们在我的应用程序中的去向。
我希望能够自动执行此操作,而无需将处理程序添加到每个按钮?
我在Composite
课上尝试过:
this.addDomHandler(new ClickHandler() {...}, ClickEvent.getType());
但是ClickEvent
没有给我任何关于点击的细节。下面的效果也不好。
NodeList<Element> elements = Document.get().getElementsByTagName("a");
EventListener el = new EventListener() {
@Override
public void onBrowserEvent(Event event) {
System.out.println(event.toString());
}
};
for (int i = 0; i < elements.getLength(); i++) {
Element e = elements.getItem(i);
com.google.gwt.user.client.Element castedElem = (com.google.gwt.user.client.Element) e;
DOM.sinkEvents(castedElem, Event.ONCLICK);
DOM.setEventListener(castedElem, el);
}
有什么提示吗?
看看这里:
注意 gwt 应用程序中的每一次点击
这将在应用程序中的每次单击时调用。
因此,如果您有此代码:
Event.addNativePreviewHandler(new NativePreviewHandler() {
@Override
public void onPreviewNativeEvent(NativePreviewEvent event) {
if (event.getNativeEvent().getType().equals("click")) {
Element eventTarget = DOM.eventGetTarget(Event.as(event.getNativeEvent()));
// check if eventTarget is an a-tag
}
}
});
任何时候单击鼠标,您都会得到一个事件。检查事件以查看是否单击了 a 标记。
希望有帮助。