ウィケット LinkTree を使用しています。ツリーが構築されてページにレンダリングされると、アプリケーションのツリーに新しいノードを動的に追加できます。新しいノードが追加されたら、新しく追加されたノードを別の色 (たとえば赤) で表示したいと考えています。
私たちが取った(しかしうまくいかなかった)1つのアプローチは次のとおりです。次のように、LinkTree クラスを拡張し、newNodeComponent メソッドをオーバーライドします。
@Override
protected Component newNodeComponent(String id, IModel<Object> model) {
return new LinkIconPanel(id, model, TalepTreeForTTBina.this) {
private static final long serialVersionUID = 4518741854057038753L;
@Override
protected void onNodeLinkClicked(Object node, BaseTree tree, AjaxRequestTarget target)
{ . . . . . .
次に、この LinkIconPanel Thing に html 属性 (クラス) を追加します。その後、jquery 関数を記述してツリー上のそのクラスを調べ、テキストが表示される < td > (または実際には < span >) タグの色を変更することを計画しました。ただし、取得する最終的なマークアップは次のようなものです。
< td class="myClass" . . . .>
< wicket:panel ....>
< table . . . >
< tbody . . . >
< tr . . . >
< td . . . >
< a ...>
< span > my text that I want to change the color < /span >
一番外側の td タグ (上の一番上) にはアクセスできますが、Java Wicket コードから内側のタグにはアクセスできません。したがって、改札コードの最も外側の td タグに myClass を挿入し、クライアントの jquery 側から色を処理することを望んでいます。< wicket:panel > タグが間にあるため、(私の css コードから) jquery (または css) から < table> タグに到達できないようです。
私の質問は: 1. LinkTree ノードの色を変更するより良い方法はありますか? 2. これが私が進むべき道である場合、css からその < span > タグに到達するにはどうすればよいですか? コードにツリーノードを手動で追加していないため、RenderBodyOnly(true) を使用できず、ノード (ノードとして追加される項目) にアクセスできません。LinkTree は私のためにそれを行います。
助けていただければ幸いです。ありがとう。