首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JScrollPane动态高度

JScrollPane动态高度
EN

Stack Overflow用户
提问于 2012-09-20 23:40:47
回答 2查看 1K关注 0票数 1

引用的演示页面可以在here中找到。

我正在尝试确定一种方法,在单击父类别(例如:石砖、石槽)时,JScrollPane将重新确定当前高度并根据需要进行调整。不幸的是,我的尝试还没有奏效。

我引用了示例here,它提供了以下函数(进行刷新)...

代码语言:javascript
复制
api.reinitialise();

我尝试将此函数设置为由类别父级触发,如下所示...

代码语言:javascript
复制
var pane = $('.menuwrap')
pane.jScrollPane();
var api = pane.data('jsp');
var i = 1;

$("li.expandable.parent").click(function() {
api.reinitialise();
});

不幸的是,虽然我能够验证点击正在渲染,但函数(api.reinitialize)似乎不起作用。我希望一双新的眼睛能给我指引正确的方向。:-)

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-21 00:16:51

问题是,api.reinitialise会在单击之后立即执行,而li元素还没有展开,所以当jscroll窗格重新计算高度时,它就会出错。您可以尝试添加延迟,但最好的解决方案是将api.reinitialise()绑定到一个事件,该事件在您的列表完成扩展后触发。我不确定您是如何在li中展开api.reinitialise的,但是例如,如果它使用的是.animate,您可以将div绑定到动画完成事件。

还注意到,并不是所有的父类li都有与之关联的父类。我期望您希望窗格在所有主li元素的展开和折叠时重新初始化。

希望这能有所帮助!

干杯:)

票数 1
EN

Stack Overflow用户

发布于 2013-01-17 17:49:22

您可以做的是在默认情况下展开内部div,然后使用jquery关闭它们,而不是直接在CSS中关闭它们。

因此,与其这样做:

代码语言:javascript
复制
.mydiv.closed {display:none}

在将元素绘制到页面后,在jquery中执行此操作:

代码语言:javascript
复制
$('.mydiv.closed').hide();

这将在必要的高度加载jscrollpane窗格,然后折叠最初要隐藏的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12516138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档