GWT不带href的可点击链接(锚定)
我正在尝试在GWT中创建一个链接(锚定),可以单击,并且可以处理它的GWT不带href的可点击链接(锚定),gwt,Gwt,我正在尝试在GWT中创建一个链接(锚定),可以单击,并且可以处理它的ClickEvent,同时该锚定不会重新加载页面。这基本上意味着不能设置href 在javascript中,这是这样做的: <a href="javascript:handleAnchorClick();">Link</a> 或与 <a href="#" onclick="return handleAnchorClick()">Link</a> 其中handleA
ClickEvent
,同时该锚定不会重新加载页面。这基本上意味着不能设置href
在javascript中,这是这样做的:
<a href="javascript:handleAnchorClick();">Link</a>
或与
<a href="#" onclick="return handleAnchorClick()">Link</a>
其中handleAnchorClick()
返回false
在GWT中实现这一点的最佳方法是什么?使用tha,调用its并添加您想要的逻辑。这种锚不会重新加载页面。在GWT use处理程序中不推荐使用侦听器 诸如此类:
Anchor a = new Anchor("hi");
a.addClickhandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Window.alert("hi");
}
});
如您所述,使用href=“#”将重新加载页面 这是您可以在UIBinder中执行的操作:
<g:Anchor ui:field="myScriptedAnchor" href="javascript:;">
MyScriptedAnchorText
</g:Anchor>
不要忘记添加一个样式来锚定,否则它的行为与普通html链接不同:
.anchor {
text-decoration: underline;
font-weight: bold;
cursor: pointer;
display: block;
}
如果你设置了一个以
#
开头的href,页面将不会被重新加载,但是历史堆栈将被更改,你可以响应该事件。确切地说,历史堆栈已更改,我不想仅仅为了有一个可点击的链接而处理它。是的,这似乎是正确的方法。现在我只需要找到一种方法,在UiBinder中使用这个特定构造函数的锚。啊,很简单@UiField(provided=true)
在字段上。ClickListener已经被删除了(我也有相同的。当api为2010年编写的答案更改时很难。AddClickhandler不起作用,它必须是“AddClickhandler”,还忘了右括号,此代码编译为:btnLogout.AddClickhandler(new ClickHandler()){@Override public void onClick(ClickEvent事件){Window.alert(“hi”);}};
.anchor {
text-decoration: underline;
font-weight: bold;
cursor: pointer;
display: block;
}