p:效果不适用于h:outputLink

时间:2013-04-21 06:17:41

标签: jsf-2 primefaces

我在 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,怎么做?

请告知,谢谢。

1 个答案:

答案 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,

您可以尝试使用speeddelay属性,将第一个动画限制为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>