我正在尝试在GWT中创建一个可以单击的链接(锚点),并且可以处理它ClickEvent
,同时此锚点不会重新加载页面。这基本上意味着不得设置href
。
在javascript中这样做:
<a href="javascript:handleAnchorClick();">Link</a>
或
<a href="#" onclick="return handleAnchorClick()">Link</a>
其中handleAnchorClick()
返回false。
在GWT中实现这一目标的最佳方式是什么?
答案 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;
}