我有3个不同的div,都是AJAX填充的。无论我尝试过什么渲染顺序,jScrollpane都无法在我的div中工作。
经过一些调试后,我发现问题在于这个特定的行contentHeight = pane[0].scrollHeight;
,其中scrollHeight&宽度总是低于完整代码段
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,附加到原始元素
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);
为什么scrollHeight对于这个特殊的div总是0?另外2个div是顶级(只有body是父级),但有问题的div非常深。在此之上有4个父div。我怀疑问题是由于任何父div中的一些高度设置。但无法弄清楚在哪里?