2012-12-25 219 views
0

我一直在使用uibinder一段時間,並得到很好的。我知道所有關於使用HTMLPanel和Anchor來添加點擊處理程序的信息。但是,有些情況下這種設計方法根本不符合法案。錨元素點擊事件

說我有一個無序列表,每個列表都有一些錨元素。

<ul><li><a ...></li>...</ul> 

將每個li作爲組件(java類)很好,因此您可以在ul中添加該組件的多個實例。這意味着在ui.xml中,你從li開始(沒有其他方式可以看到)。但是然後沒有辦法在裏面插入Anchor。你不能用HTMLPanel替換li,因爲這會創建一個你不想要的div。

通過在此uibinder中保留錨點,將無法檢測錨點單擊事件。

有什麼想法?

回答

1

在你的HTML,設置ID爲錨:

<a id='testachor'>...</a> 

在GWT代碼,敷錨成widget:

Anchor testAnchor = Anchor.wrap(Document.getElementById('testanchor')); 

然後單擊處理程序添加到它:

testAnchor.addDomHandler(new ClickHandler(){...}, ClickEvent.getType()); 
1

您可以在<li>標記內添加錨點小部件:

<g:HTMLPanel> 
    <ul> 
     <li> 
      <g:Anchor ui:field="link" /> 
     </li> 
    </ul> 
</g:HTMLPanel> 
相關問題