0

我使用 uibinder 已经有一段时间了,并且非常擅长它。我知道所有关于使用 HTMLPanel 和 Anchor 添加点击处理程序的知识。但是,在某些情况下,这种设计方法根本不符合要求。

假设我有一个无序列表,每个列表都有一些锚元素。

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

最好将每个 li 作为一个组件(java 类),这样您就可以在 ul 中添加该组件的多个实例。这意味着在 ui.xml 中,您从 li 开始(我看不到其他方式)。但是没有办法在里面插入Anchor。你不能用 HTMLPanel 替换 li ,因为这会创建一个你不想要的 div 。

通过在此 uibinder 中将锚点保留为 a,将无法检测到锚点单击事件。

有任何想法吗?

4

2 回答 2

1

在您的 HTML 中,将 ID 设置为锚点:

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

在您的 GWT 代码中,将锚点包装到一个小部件中:

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

然后向其添加点击处理程序:

testAnchor.addDomHandler(new ClickHandler(){...}, ClickEvent.getType());
于 2012-12-26T03:48:02.007 回答
1

<li>您可以在标签内添加 Anchor 小部件:

<g:HTMLPanel>
    <ul>
        <li>
            <g:Anchor ui:field="link" />
        </li>
    </ul>
</g:HTMLPanel>
于 2012-12-26T04:10:15.647 回答