2012-01-31 91 views
3

我需要將具有特定ClickHandler的錨元添加到元素中。 但我的Anchor的onClick(...)方法永遠不會被調用。對元素的子元素使用ClickHandler

我該如何解決這個問題?

Element th = DOM.createTH(); 
Anchor link = new Anchor(); 
link.setText("my link"); 
link.addClickHandler(new ClickHandler() { 
    public void onClick(ClickEvent event) { 
     Window.alert("Clicked!"); 
    } 
}); 
th.appendChild(link.getElement()); 

回答

7

我還沒有試過用這種方式實現它,但是,我這樣做,它工作正常。

final Element link = DOM.createAnchor(); 
final Element th = DOM.createTH(); 
link.setInnerText("my link"); 
link.setAttribute("style", "cursor:pointer;"); 
DOM.sinkEvents(link, Event.ONCLICK); 
DOM.setEventListener(link, new EventListener() { 
     public void onBrowserEvent(Event event) { 
      Window.alert("Clicked!");  
     } 
}); 
th.appendChild(link); 

我認爲這有助於。

+0

謝謝,它工作得很好(元素上的setText方法除外:-P) – user1180339 2012-01-31 14:22:28