解构XPage下拉按钮菜单页面滚动

时间:2013-01-28 20:48:58

标签: drop-down-menu scroll xpages xsp

我正在使用xpages扩展库在导航中生成下拉菜单,其中包含以下代码:

<xe:dropDownButton disableTheme="true" styleClass="menuButton">
        <xe:this.treeNodes>
            <xe:basicContainerNode styleClass="menuTopLevel">
                <xe:this.children>
                    <xe:pageTreeNode label="Create New" page="NewInspection.xsp"
                        styleClass="menuItemSub1">
                    </xe:pageTreeNode>
                    <xe:pageTreeNode label="Reports" page="View.xsp"
                        styleClass="menuItemSub1">
                    </xe:pageTreeNode>
                </xe:this.children>
            </xe:basicContainerNode>
        </xe:this.treeNodes>
    </xe:dropDownButton>

我遇到的问题是,当用户在可滚动的页面上时(也就是说,页面的高度超过内容区域的高度),并且他们滚动页面,菜单保持不变它被绘制的位置,如果它是打开的,并且不与页面内容一起滚动。如果页面滚动,我正在寻找解构任何/所有打开菜单的方法,但我在XPage中没有任何运气。有没有人遇到过类似的东西?

1 个答案:

答案 0 :(得分:0)

我能够找到这个解决方案。利用代码库来确定我在iPad上的时间,我加载了一个函数,该函数添加了一个事件,该事件使用Dojo来附加绑定到外部窗体而不是窗口本身的onscroll事件。由于某种原因,我不得不将它嵌入我的导航自定义控件中的脚本块中,如果我把它放在别处,它就不会附加。这是代码,如果其他人将来需要它。

dojo.ready( function() {
var object = dojo.byId('view:_id1')
//console.log(object);
dojo.connect(object, 'onscroll', this, function(event) {
    // console.log('scroll');
        var object1 = dojo.byId('#{id:adminDropDown}_ab_0_dropdown')
        if (object1 != null) {
            dojo.style(object1, "display", "none")
        }
        var object1 = dojo.byId('#{id:insDropDown}_ab_0_dropdown')
        if (object1 != null) {
            dojo.style(object1, "display", "none")
        }
        var object1 = dojo.byId('#{id:emDropDown}_ab_0_dropdown')
        if (object1 != null) {
            dojo.style(object1, "display", "none")
        }
        var object1 = dojo.byId('widget_view:_id1:DateEntry_dropdown')
        if (object1 != null) {
            dojo.style(object1, "display", "none")
        }
    });