我正在尝试在Button上使用方法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(...)),则不会调用处理程序。
无法找出原因?
提前致谢。
答案 0 :(得分:7)
只有让这项工作成功的是:
更改
widget.addHandler(clickHandler2, ClickEvent.getType());
到
widget.addDomHandler(clickHandler2, ClickEvent.getType());
答案 1 :(得分:0)
只需添加
widget.sinkEvents(Event.ONCLICK);
注册dom'点击'触发事件的事件