0

我正在使用 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>

我遇到的问题是,当用户在可滚动的页面上(也就是说,页面的高度超过内容区域的高度)并且他们滚动页面时,菜单会停留在原位绘制,如果它是打开的,并且不随页面内容滚动。如果页面滚动,我正在寻找一种方法来解构任何/所有打开的菜单,但我在 XPages 中对此没有任何运气。有没有人遇到过类似的事情?

4

1 回答 1

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")
        }
    });
于 2013-02-07T14:09:01.137 回答