我的目的是使用 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 的颜色?
提前致谢。
答案 0 :(得分:0)
您的div
获得红色背景,但浏览器会继续执行链接的正常操作,即导航到服务器。环回完成后,你会松开背景颜色。
要使其按预期工作,您需要告知浏览器在单击链接时不启动HTTP请求。你可以简单地说:
<h:outputLink id="menuLevel0" class="menuLevel0" action="" onclick="activate('#{menu.id}'); return false;" >