我有一个面板,如果它只显示,我想对它执行隐藏效果,如果它被隐藏,效果不起作用。
<h:outputLink id="open_link" value="#" styleClass="underline">
Click To Open
<p:effect for="blank_panel" type="blind" event="click" speed="2000">
<f:param name="mode" value="'hide'" />
</p:effect>
<p:effect type="blind" event="click" for="display_tabs" delay="1000">
<f:param name="mode" value="'show'" />
</p:effect>
</h:outputLink>
<h:panelGroup id="blank_panel" layout="block">
</h:panelGroup>
我想第二次点击链接时(在这种情况下隐藏了blank_panel) 不执行blank_panel的效果
<!-- executed only if the blank_panel is shown -->
<p:effect for="blank_panel" type="blind" event="click" speed="2000">
<f:param name="mode" value="'hide'" />
</p:effect>
答案 0 :(得分:1)
INMO你最好使用jQuery效果,但是......
由于你想使用p:效果的primefaces,我认为你应该使用两个<h:outputLink
和它们的可见性,按一个应该隐藏它并显示第二个<h:outputLink
,反之亦然... < / p>
<h:outputLink id="open_link"
onclick="$('#open_link').hide();$('#open_link2').show();" value="#"
styleClass="underline">
Click To Open
<p:effect....
<p:effect....
</h:outputLink>
<h:outputLink id="open_link2"
onclick="$('#open_link2').hide();$('#open_link').show();" value="#"
styleClass="underline">
Click To Open
<p:effect...
</h:outputLink>
不确定ids ...(如果你不使用prependId =“false”等等......)