锚元素点击事件

时间:2012-12-25 22:54:40

标签: gwt click anchor

我已经使用了uibinder一段时间并且相当不错。我知道使用HTMLPanel和Anchor来添加点击处理程序。但是,有些情况下,这种设计方法根本不符合要求。

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

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

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

将锚点留在此uibinder中,将无法检测到锚点击事件。

任何想法?

2 个答案:

答案 0 :(得分:1)

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

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

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

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

然后添加点击处理程序:

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

答案 1 :(得分:1)

您可以在<li>代码中添加Anchor小部件:

<g:HTMLPanel>
    <ul>
        <li>
            <g:Anchor ui:field="link" />
        </li>
    </ul>
</g:HTMLPanel>