JSF2.0 - CSS-Change在生命周期中迷失了

时间:2013-10-08 09:36:45

标签: javascript css jsf-2 onclick

我的目的是使用 onClick -Event实现 h:outputLink onClick -Event调用javascript函数,该函数应更改 h:panelGroup DIV )的背景颜色。

以下是代码片段:

<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 的颜色?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您的div获得红色背景,但浏览器会继续执行链接的正常操作,即导航到服务器。环回完成后,你会松开背景颜色。

要使其按预期工作,您需要告知浏览器在单击链接时不启动HTTP请求。你可以简单地说:

<h:outputLink id="menuLevel0" class="menuLevel0" action="" onclick="activate('#{menu.id}'); return false;" >