2013-07-15 46 views
0
Anchor link = new Anchor("Link"); 
       link.setStyleName("link"); 
       link.addClickHandler(new ClickHandler() { 
        @Override 
        public void onClick(ClickEvent event) { 
         Window.alert("mes"); 
        } 
       }); 
       relhtml.setHTML(relhtml.getHTML()+link); 

有了這段代碼,我的HTML顯示正確,錨點看起來像我完全想看起來像,但事件沒有被解僱。你能幫忙嗎?Anchor clickHandler沒有觸發事件

回答

2

當您撥打setHTML時,您將繞過所有的GWT架構,並將簡單的HTML插入到您的頁面中。這就是爲什麼你的事件處理程序不起作用。

將小部件添加到容器的正確方法是使用add系列方法。例如,你可能會說RootPanel.get().add(link)

看起來您正在構建一個HTML字符串以一次性插入所有內容,但可以在每個單獨的組件上調用add即可。

RootPanel root = RootPanel.get(); 
root.add(link); 
root.add(new Button("And this is a button!")); 
root.add(whateverOtherWidget); 
root.add(new HTML("You can also add arbitrary html with the HTML widget."); 
+0

假設'relhtml'是'HTML'或'InlineHTML'小部件,你也可以添加一個'ClickHandler'那裏測試目標元素是否是鏈接(又名_event delegation_) –