我在 h:outputLink 中有 p:effect ,如下所示:
<h:panelGrid id="closed_notebook" styleClass="book_wrapper"
style="width:455px;margin-left: 400px;" columns="2"
columnClasses="middle,cover">
<h:panelGroup id="middle_closed" layout="block">
</h:panelGroup>
<h:panelGroup id="left_closed" layout="block">
<h:outputLink value="javascript:void(0)">
<h:graphicImage value="/resources/images/book.png" />
<p:effect for="closed_notebook" type="clip" event="click" />
</h:outputLink>
</h:panelGroup>
</h:panelGrid>
我想在点击包含图片的链接时,所有panelGrid都会消失,但它不起作用,我没有动作。
另外,我希望在panelGrid消失后显示另一个带动画的隐藏panelGrid,怎么做?
请告知,谢谢。
答案 0 :(得分:2)
尝试使用<f:param name="mode" value="'hide'" />
另一个重要的事情可能是将id
属性添加到<h:outputLink
注意:对于具有效果组件作为孩子的组件来说,这很重要 如果你没有给他们一个id,那么某些组件不会呈现他们的clientId 明确。(Primefaces Manual)
像这样:
<h:outputLink id="someUniqeIdMightBeAMust" value="javascript:void(0)">
<p:effect for="closed_notebook" type="clip" event="click">
<f:param name="mode" value="'hide'" />
</p:effect>
</h:outputLink>
至于另一部分显示另一个隐藏的panelGrid,
您可以尝试使用speed
和delay
属性,将第一个动画限制为1000,并在1001毫秒后开始第二个动画......
<h:outputLink id="someUniqeIdMightBeAMust" value="javascript:void(0)">
<p:effect for="closed_notebook" type="clip" event="click" speed="1000">
<f:param name="mode" value="'hide'" />
</p:effect>
<p:effect for="middle_closed" type="clip" event="click" delay="1001">
<f:param name="mode" value="'show'" />
</p:effect>
</h:outputLink>