0

私の意図は、onClick -Event を使用してh:outputLinkを実装することです。onClick -Event は、h:panelGroup ( DIV ) の背景色を変更する javascript 関数を呼び出します。

コードスニペットは次のとおりです。

<script src="http://code.jquery.com/jquery-latest.js"></script>

<script type="text/javascript">
    function activate(menuId) {
        $(".menu_"+menuId).css( "background", "red" );
    }
</script>

..

<h:panelGroup layout="block" id="menu" style="" class="menu_#{menu.id}">
    <h:outputLink id="menuLevel0" class="menuLevel0" action="" onclick="activate(#{menu.id})">
        ..
    </h:outputLink>
</h:panelGroup>

リンクをクリックすると、 h:panelGroupの背後にあるDIVの色が赤に変わりますが、すぐに再び白に変わります。(デフォルトの背景色)。

応答のビルド中にDIVが赤くなるようです。また、JSF がページをレンダリングして css-change を失うため、色が再びデフォルトに変わります。これは、何が起こっているかの正しい説明でしょうか?

私の質問は、h:panelGroupの色を「永久に」変更するにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

0

赤いdiv背景が表示されますが、リンクの通常のアクションはブラウザによって処理されます。つまり、サーバーに移動します。ループバックが完了すると、背景色が失われます。

希望どおりに機能させるには、リンクがクリックされたときに HTTP 要求を起動しないようにブラウザーに指示する必要があります。簡単にできます:

<h:outputLink id="menuLevel0" class="menuLevel0" action="" onclick="activate('#{menu.id}'); return false;" >
于 2013-10-08T13:17:03.803 に答える