1

可以在此处找到引用的演示页面。

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

我在这里引用了示例,它提供了以下功能(进行刷新)......

api.reinitialise();

我试图将这个功能设置为由类别父母触发,就像这样......

var pane = $('.menuwrap')
pane.jScrollPane();
var api = pane.data('jsp');
var i = 1;

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

不幸的是,虽然我能够验证点击正在呈现,但函数 (api.reinitialize) 似乎没有工作。我希望一双新鲜的眼睛可以为我指明正确的方向。:-)

谢谢!

4

2 回答 2

1

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

还注意到并非所有的父 li 都有与它们相关联的类父类。我希望您希望窗格在所有主要 li 元素的展开和折叠时重新初始化。

希望有帮助!

干杯:)

于 2012-09-20T16:16:50.523 回答
0

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

所以不要这样做:

.mydiv.closed {display:none}

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

$('.mydiv.closed').hide();

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

于 2013-01-17T09:49:21.653 回答