2012-12-28 130 views
3

我想在按鈕上使用方法addHandler。 以下是我的代碼:GWT按鈕上的Widget.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(...),然後處理程序不被調用。

無法事先弄清楚爲什麼?

感謝。

回答

7

只有得到這個工作所需要的事情是:

變化

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

widget.addDomHandler(clickHandler2, ClickEvent.getType()); 
0

只需添加

widget.sinkEvents(Event.ONCLICK); 

此註冊DOM 'click' 事件觸發事件