将点击处理程序添加到每个按钮



我正在尝试在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 标记。

希望有帮助。

相关内容

  • 没有找到相关文章

最新更新