0

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

请指教,谢谢。

4

1 回答 1

2

尝试使用<f:param name="mode" value="'hide'" />

另一个重要的事情可能是添加和id归因于<h:outputLink

注意:对于将效果组件作为子组件的组件分配 id 很重要,因为如果您没有明确地给它们一个 id,某些组件不会呈现它们的 clientId。(Primefaces 手册)

像这样:

<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>
于 2013-04-21T07:07:12.100 回答