3

我正在尝试在按钮上使用方法 addHandler。以下是我的代码:

private void attachClickHandler(Widget widget) {
    ClickHandler clickHandler1;
    ClickHandler clickHandler2;

    clickHandler1 = new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            System.out.println("ClickHandler One");
        }

    };
    clickHandler2 = new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            System.out.println("ClickHandler Two");
        }

    };
    ((Button) widget).addClickHandler(clickHandler1);
    widget.addHandler(clickHandler2, ClickEvent.getType());
}

如果我添加两个处理程序,它会完美运行。但是,如果我尝试仅添加 clickHandler2(使用 widget.addHandler(...),则不会调用处理程序。

无法弄清楚为什么?

提前致谢。

4

2 回答 2

7

唯一需要做的就是:

改变

widget.addHandler(clickHandler2, ClickEvent.getType());

widget.addDomHandler(clickHandler2, ClickEvent.getType());
于 2012-12-29T06:36:45.083 回答
0

只需添加

widget.sinkEvents(Event.ONCLICK);

这将注册 dom 'click' 事件以触发事件

于 2014-06-01T21:28:32.430 回答