1

私は Wicket AJAX 機能の実験を開始し、AjaxLink を実装したいと考えました。

これは、関連するマークアップ/Java コードです。

<a wicket:id="testlink"></a>
---
AjaxLink<Component> link = new AjaxLink<Component>("testlink") {
    @Override
    public void onClick(AjaxRequestTarget target) {
        System.out.println("called");
    }
};
add(link);

しかし、onClick生成された HTML は次のようになるため、 -method は呼び出されません。

<a wicket:id="testlink" id="testlink7" href="javascript:;"></a>

私が間違っていることについてのアイデアはありますか?

4

3 に答える 3

2

これhref="javascript:;"が機能するのは、Wicket 6 が JavaScript イベント登録を使用するためです。Firefox のようなブラウザー開発ツールで Web ページを見てください。インスペクタをリンクに向けてその ID を読み取り、次に head セクションに移動して<script type= text/javascript></script>タグの 1 つを展開します。そこにリンクの ID が表示され、クリック イベントがリンクの ID に関連付けられている行があることがわかります。リンクをクリックすると、そこにある URL が実行されます。

Firefox 開発ツールのスクリーンショット

于 2013-11-04T14:29:06.870 に答える
0

Wicket 6 の ajax メカニズムを明確にしてくれた Robert に感謝します。

実際には、私がまだ完全に解明していない jQuery の不一致が原因でした。どうやら同僚は、さまざまな Wicket モジュール内でさまざまな jQuery バージョンを使用していたようで、どういうわけか、Wicket は出荷されたものではなく、イベントを添付しようとしたときに間違ったものを使用していました。コンポーネントへのリスナー。

不要な古い jQuery ライブラリを削除すると、Wicket が正常に動作し始めました。今は、他の jQuery ライブラリに応じてコンポーネントを再度動作させる必要がありますが、それは別の話です :)

于 2013-11-05T16:06:20.997 に答える