我正在使用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