使用jquery在当前鼠标光标位置打开rich:popupPanel

时间:2013-05-08 11:48:30

标签: jquery jsf jsf-2 richfaces

以下代码将打开一个rich:popupPanel,与h:commandButton垂直对齐并直接位于其下方:

<h:commandButton value="Open popup" id="openBtn">
    <rich:componentControl event="click" target="myPopup"
        operation="show">
        <a4j:param name="event" value="event" noEscape="true" />
        <rich:hashParam>
            <a4j:param noEscape="true" name="top"
                value="jQuery(#{rich:element('openBtn')}.parentNode).offset().top  + jQuery(#{rich:element('openBtn')}.parentNode).height()" />
            <a4j:param noEscape="true" name="left"
                value="jQuery(#{rich:element('openBtn')}.parentNode).offset().left" />
        </rich:hashParam>
    </rich:componentControl>
</h:commandButton>
<rich:popupPanel id="myPopup" modal="false" autosized="true" resizeable="false" .... 

现在我希望弹出窗口显示在用户点击<h:commandButton>时光标所在的位置,但我无法找到如何执行此操作(很遗憾,我没有任何练习jQuery的)。你能帮我吗?

由于

1 个答案:

答案 0 :(得分:1)

也许你应该试试这个:

<a4j:param noEscape="true" name="top"
value="jQuery(#{rich:element('openBtn')}.parentNode).offset().top  + jQuery(#{rich:element('openBtn')}.parentNode).height() - $(window).scrollTop()" />

设置&#34; top&#34;的值到元素的位置减去滚动条的垂直位置。

jQuery scrollTop()