Jquery 具有动态高度和动态内容的JScrollPane?
我正在开发一个Javaservlet,它使用包含数据库搜索结果的div生成网页 此div的高度定义为百分比动态高度,内容具有显示/隐藏按钮动态内容。显示和隐藏功能由div元素的onclick属性激活 我首先尝试使用此页面中的javascript实现动态高度,并使用以下方法: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(); }
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);
};
你能发一封信吗?你的想法听起来似乎是有效的,但听起来你好像被实现绊倒了。