我正在使用Wicket 6.11并遇到了一个奇怪的错误。我将AjaxLinks的图标包含在大型应用程序中,其中isLinkEnabled()可以根据各种情况返回false。当它这样做时,它将链接视为禁用,就像你期望的那样(一个带有em标签的span标签),但是当我点击图标时,事件仍然会触发!Wicket AjaxLink isLinkEnabled()= false呈现可点击的范围
示例代码:
AjaxLink<Object> button = new AjaxLink<Object>("editLocationButton") {
private static final long serialVersionUID = 1L;
public void onClick(AjaxRequestTarget p_target) {
// do things
}
/**
* @see org.apache.wicket.markup.html.link.AbstractLink#isLinkEnabled()
*/
@Override
protected boolean isLinkEnabled() {
return super.isLinkEnabled() && getSelectedLocation() != null;
}
};
HTML文件:
<td style="width:0%">
<span class="editButton iconButton" id="editLocationButton7b6"><em>
</em></span>
</td>
的editButton/iconButton CSS设置背景图像和宽度/高度:
禁用时 <td style="width:0%">
<a href="#" wicket:id="editLocationButton" class="editButton iconButton">
<wicket:message key="button.edit.location"></wicket:message>
</a>
</td>
呈现的HTML 。
寻找Firefox元素检查器(不是萤火虫)跨度有一些附加到它的事件触发ajax调用到服务器,为什么他们没有被禁用?这是Wicket中的错误吗?我只是遇到了这个问题,因为我试图点击一个在演示期间看起来被禁用的链接!
任何帮助表示赞赏,谢谢。
我同意。 Wicket可以在这里改进。请提交一张票https://issues.apache.org/jira/browse/WICKET,我们会解决它。谢谢! – 2015-04-02 07:37:52
isLinkEnabled已在Wicket 7中删除[link](https://cwiki.apache.org/confluence/display/WICKET/Migration+to+Wicket+7.0#MigrationtoWicket7.0-AbstractLinknolongeraltersitsmarkuptorender itselfasdisabledWICKET-4904),我会争辩说如果isLinkEnabled不应该被使用,它不一定是一个错误的文档。 – fancyplants 2015-04-02 08:29:49
它至少不一致。例如,AjaxFallbackLink有一个正确的实现。但由于它在Wicket 7中删除,我决定不报告它。 – 2015-04-02 12:46:34