没有href的GWT可点击链接(锚)

时间:2010-12-04 23:58:08

标签: gwt

我正在尝试在GWT中创建一个可以单击的链接(锚点),并且可以处理它ClickEvent,同时此锚点不会重新加载页面。这基本上意味着不得设置href

在javascript中这样做:

<a href="javascript:handleAnchorClick();">Link</a> 

<a href="#" onclick="return handleAnchorClick()">Link</a>  

其中handleAnchorClick()返回false。

在GWT中实现这一目标的最佳方式是什么?

4 个答案:

答案 0 :(得分:12)

使用tha Anchor element,并调用其addClickListener() method并添加您想要的逻辑。这种锚不会重新加载页面。

答案 1 :(得分:10)

GWT使用处理程序中不推荐使用监听器

类似的东西:

Anchor a = new Anchor("hi");
a.addClickhandler(new ClickHandler() {
     @Override
     public void onClick(ClickEvent event) {
           Window.alert("hi");
     }

});

答案 2 :(得分:8)

如您所述,使用href =“#”将重新加载页面。

这是您在UIBinder中可以做的事情:

    <g:Anchor ui:field="myScriptedAnchor" href="javascript:;">
        MyScriptedAnchorText
    </g:Anchor>

然后,您可以在视图实现中执行任何处理ClickEvent的操作。

    @UiHandler("myScriptedAnchor")
    void onMyScriptedAnchorClick(ClickEvent event) {
        // TODO whatever you want to do...
    }

答案 3 :(得分:8)

不要忘记添加一个样式来锚定,否则它的行为不像普通的html链接:

.anchor {
            text-decoration: underline;
            font-weight: bold;
            cursor: pointer;
            display: block;
        }