Jquery 具有动态高度和动态内容的JScrollPane?

Jquery 具有动态高度和动态内容的JScrollPane?,jquery,jscrollpane,dynamic-content,Jquery,Jscrollpane,Dynamic Content,我正在开发一个Javaservlet,它使用包含数据库搜索结果的div生成网页 此div的高度定义为百分比动态高度,内容具有显示/隐藏按钮动态内容。显示和隐藏功能由div元素的onclick属性激活 我首先尝试使用此页面中的javascript实现动态高度,并使用以下方法: function refreshNav() { var pane = $('YOUR SELECTOR'); var api = pane.data('jsp'); api.reinitialise(); }

我正在开发一个Javaservlet,它使用包含数据库搜索结果的div生成网页

此div的高度定义为百分比动态高度,内容具有显示/隐藏按钮动态内容。显示和隐藏功能由div元素的onclick属性激活

我首先尝试使用此页面中的javascript实现动态高度,并使用以下方法:

function refreshNav() {  
var pane = $('YOUR SELECTOR');  
var api = pane.data('jsp');  
api.reinitialise();  
}
…由show/hide方法调用,以调用重新初始化方法并允许动态内容

它不能正常工作-在一些点击时它可以工作,在其他点击时滚动窗格将消失而不是重新出现,反之亦然

我也尝试过让变量api成为全局变量——这是一个同样的问题

最新的一件事是,我尝试使用js,但没有附加段落。在快速响应和CPU活动之间有一个折衷,所以我添加了一个if语句,它检查一个布尔值,描述内容或高度是否发生了变化。我已经使用console.log检查了一切是否正常工作,因为它应该改变布尔值,执行if语句等等

是的……但我仍然有JScrollPane的同样问题

我曾经在某个地方读到,使用HTMLOnClick属性是一种糟糕的做法——这是否相关

如果您能告诉我可能出了什么问题,我将不胜感激

干杯


Scott

由于我找到了一个答案,我写了一个可以接受的解决方法

唯一的缺点是它需要一点CPU工作,但不需要经常重新初始化。我尝试使用resize插件,而不是将所有内容都放在计时器上,但出于某种原因,有时我会让它重新初始化两次,这意味着在顺利完成jquery show动画的中途,它会在滚动条重新初始化时暂停一段时间

好吧。它的工作原理如下:

-每75毫秒检查一次窗口高度和容器高度,看它们是否有变化 -如果是这样,滚动条设置为100毫秒后重新初始化 -如果某物继续调整大小,则重新初始化命令将再次重置为100

$(document).ready(function(){

var windowHeight = $(window).height();
var containerHeight = $('#container').height();
var resized;

setInterval(function(){

    if(windowHeight!=$(window).height() || containerHeight!=$('#container').height())
    {
        clearTimeout(resized);
        resized = setTimeout(function(){api.reinitialise();}, 100);
    }

    windowHeight = $(window).height();
    containerHeight = $('#container').height();

},75);

});

我还用了马克·科尔曼的剧本谢谢马克!它是有效的

function resizedw() {
        $.each($('.scroll-pane'), function () {
            var api = $(this).data('jsp');
            api.reinitialise();
        });
}
var doit;
window.onresize = function () {
    clearTimeout(doit);
    doit = setTimeout(resizedw, 100);
};
你能发一封信吗?你的想法听起来似乎是有效的,但听起来你好像被实现绊倒了。