2012-01-31 2 views
3

Мне нужно добавить Якорь с определенным ClickHandler в элемент. Но метод 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