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 に答える