2

3 つの異なる div があり、すべて AJAX が設定されています。jScrollpane は、私が試したレンダリング順序に関係なく、私の div の 1 つで機能しません。

プラグインをデバッグした後contentHeight = pane[0].scrollHeight;、スクロールの高さと幅が常に 0 であるこの特定の行に問題があることがわかりました。完全なスニペットの下

            pane.css('overflow', 'auto');
            if (s.contentWidth) {
                contentWidth = s.contentWidth;
            } else {
                contentWidth = pane[0].scrollWidth;
            }
            contentHeight = pane[0].scrollHeight;
            pane.css('overflow', '');

            percentInViewH = contentWidth / paneWidth;
            percentInViewV = contentHeight / paneHeight;
            isScrollableV = percentInViewV > 1;

            isScrollableH = percentInViewH > 1;

            if (!(isScrollableH || isScrollableV)) {
              elem.removeClass('jspScrollable');
                pane.css({
                    top: 0,
                    width: container.width() - originalPaddingTotalWidth
                });
                removeMousewheel();
                removeFocusHandler();
                removeKeyboardNav();
                removeClickOnTrack();

pane元の elem に追加された、新しく作成された jsPane です。

pane = $('<div class="jspPane" />').css('padding', originalPadding).append(elem.children());
                    container = $('<div class="jspContainer" />')
                        .css({
                            'width': paneWidth + 'px',
                            'height': paneHeight + 'px'
                        }
                    ).append(pane).appendTo(elem);

この特定の div の scrollHeight が常に 0 なのはなぜですか? 他の 2 つの div もトップ レベル (本体のみが親) ですが、問題のある div は非常に深いです。その上に 4 つの親 div があります。この問題は、親 div の高さの設定が原因であると思われます。でもどこか分からなかった?

4

0 に答える 0