0

该链接包含richfaces 4 popuppanel的示例: richfaces popuppanel example

这是代码:

<rich:toolbar height="26px" id="tb">
    <rich:toolbarGroup location="right">
        <h:outputLink value="#">
            <rich:componentControl event="click" operation="show" target="ls">
                <a4j:param name="event" value="event" noEscape="true" />
                <rich:hashParam>
                    <a4j:param noEscape="true" name="top"
                               value="jQuery(#{rich:element('tb')}).offset().top + jQuery(#{rich:element('tb')}).height()" />
                    <a4j:param noEscape="true" name="left"
                               value="jQuery(#{rich:element('tb')}).offset().left + jQuery(#{rich:element('tb')}).width() - p_width" />
                </rich:hashParam>
            </rich:componentControl>
            Search
        </h:outputLink>
    </rich:toolbarGroup>
</rich:toolbar>
<rich:popupPanel header="Enter Search Terms" id="ls" autosized="true" modal="false" moveable="false" resizeable="false" followByScroll="false" >
    <h:panelGrid columns="3">
        <h:outputText value="Search:" />
        <h:inputText />
        <h:outputLink onclick="#{rich:component('ls')}.hide(event); return false;" value="#">Search
        </h:outputLink>
    </h:panelGrid>
</rich:popupPanel>
<h:outputScript type="text/javascript" target="body">
    p_width = #{rich:component('ls')}.width();
</h:outputScript>

但弹出窗口出现在随机位置,即有时在栏下方,然后必须滚动,有时在上方。是否可以确保它在连接时始终显示在栏的正上方?

4

1 回答 1

2

top和参数设置面板的left位置,将它们更改为您希望面板所在的位置,或者直接调用该方法:

RichFaces.component('panelId').show(null, {top: "800px", left: "500px"})

您正在使用示例中专门将面板设置在栏下方的部分,因此当面板出现在此处时应该不足为奇。

于 2015-08-19T12:05:52.003 回答