2012-10-15 66 views
0

我有一個MenuButton,它由一個Image和一個文本組成。整件事是建立這樣的:java gwt clickhandler

ImageResource icon = ...; 
    final Element span = DOM.createSpan(); 

    Image image = new Image(icon); 
    span.insertFirst(image.getElement()); 

    Element div = DOM.createDiv(); 
    div.setInnerHTML(text); 

    span.insertAfter(div, span); 

    image.sinkEvents(Event.ONCLICK); 

    getElement().insertFirst(span); 

click事件被設置在主持人是這樣的:

 ... 
     private void bindEvents() { 
     display.getButton().addClickHandler(new ClickHandler() { 
      public void onClick(ClickEvent event) { 
       Window.alert("test"); 
      } 
    }); 

click事件的作品只是部分,當我點擊的文本圖像下點擊事件工作正常,但當我點擊圖像沒有點擊執行!?

+0

一切都很好地解釋在這裏:http://stackoverflow.com/a/10153663/921244 –

回答

1

一種不同的方法:

FlowPanel myButton = new FlowPanel(); 
myButton.add(new Image(icon)); 
myButton.add(new Label(myButtonText)); 

ClickHandler h = new ClickHandler() { 
    @Override 
    public void onClick(ClickEvent event) { 
     // do something 
    } 
}; 
myButton.addDomHandler(h, ClickEvent.getType()); 

這會趕上兩個圖像上的單擊事件和其下的文本。

相關問題