2

我有 3 个不同的 div,都填充了 AJAX。无论我尝试了何种渲染顺序,jScrollpane 都无法在我的一个 div 中工作。

在对插件进行一些调试后,我发现问题出在这一特定行contentHeight = pane[0].scrollHeight;,其中 scrollHeight 和 width 始终为 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是一个新创建的 jsPane 附加到原始 elem

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 也是顶级的(只有 body 是父级),但有问题的 div 非常深。在此之上有 4 个父 div。我怀疑问题是由于任何父 div 中的一些高度设置造成的。但是不知道在哪里?

4

0 回答 0