我有 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 中的一些高度设置造成的。但是不知道在哪里?