Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JScrollPane动态高度_Javascript_Jquery_Wordpress_Jscrollpane - Fatal编程技术网

Javascript JScrollPane动态高度

Javascript JScrollPane动态高度,javascript,jquery,wordpress,jscrollpane,Javascript,Jquery,Wordpress,Jscrollpane,可以找到引用的演示页面 我正在尝试确定一种方式,在单击父类别(例如:石头瓷砖、石头水槽)时,JScrollPane将重新确定当前高度并根据需要进行调整。不幸的是,我这样做的尝试还没有成功 我引用了一个示例,该示例提供了以下函数(执行刷新) 我已经试着设置这个函数,让它由类别父母触发,就像这样 var pane = $('.menuwrap') pane.jScrollPane(); var api = pane.data('jsp'); var i = 1; $("li.expandable.

可以找到引用的演示页面

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

我引用了一个示例,该示例提供了以下函数(执行刷新)

我已经试着设置这个函数,让它由类别父母触发,就像这样

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

$("li.expandable.parent").click(function() {
api.reinitialise();
});
不幸的是,虽然我能够验证是否呈现了单击,但函数(api.reinitialize)似乎不起作用。我希望有一双新的眼睛能为我指明正确的方向。:-)


谢谢

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

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

希望有帮助


干杯:)

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

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

希望有帮助


干杯:)

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

因此,与其这样做,不如:

.mydiv.closed {display:none}
将元素绘制到页面后,在jquery中执行此操作:

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

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

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

因此,与其这样做,不如:

.mydiv.closed {display:none}
将元素绘制到页面后,在jquery中执行此操作:

$('.mydiv.closed').hide();
这将在必要的高度加载jscrollpane,然后折叠最初要隐藏的内容