使用jquery live更新滚动条
我正在制作一个网页,它使用accordiodiv元素来扩展和压缩每个标题的内容。我还使用了一个自定义滚动条,每当发生扩展或契约事件时,该滚动条都需要更新。 到目前为止,我提出的解决方案是使用jquery的live,如下所示: jQuery('#accordion_sp1_id139').live('click',function(){myScrollBar.update();}) 所以基本上我告诉它,只要在主accordion div中发生单击事件,就会更新滚动条 我的问题是,第一次在该div中单击任何内容时,这都不起作用,但在随后的任何单击中都起作用。还有什么方法可以让它在第一次点击时也能工作吗 以下是出现问题的页面:使用jquery live更新滚动条,jquery,scrollbar,mouseevent,live,Jquery,Scrollbar,Mouseevent,Live,我正在制作一个网页,它使用accordiodiv元素来扩展和压缩每个标题的内容。我还使用了一个自定义滚动条,每当发生扩展或契约事件时,该滚动条都需要更新。 到目前为止,我提出的解决方案是使用jquery的live,如下所示: jQuery('#accordion_sp1_id139').live('click',function(){myScrollBar.update();}) 所以基本上我告诉它,只要在主accordion div中发生单击事件,就会更新滚动条 我的问题是,第一次在该div中
我使用的滚动条是jquery插件,它取自,一个简单的解决方案是在处理程序中为accordion open事件更新滚动条。在查看代码时,如果要在“按”页面上创建如下javascript:
onActive: function(toggler){
toggler.addClass('active');
myScrollBar.update();
},
我的猜测是,假设myScrollBar变量在该函数的作用域内,它会起作用 我相信这里发生的是您的单击事件,因为您的容器在单击事件之后直接启动手风琴动画,但在容器展开之前。您需要将调用
myScrollBar.update()
设置为在手风琴动画完成后进行,这在的文档中有提到(尽管它一开始并不突出)
在手风琴脚本中添加onComplete:
设置以运行滚动条更新
var myAccordion139 = new Accordion(document.getElements('#accordion_sp1_id139 .toggler'), document.getElements('#accordion_sp1_id139 .sp-accordion-inner'), {
opacity: true,
display:-1,
alwaysHide: true,
onActive: function(toggler){
toggler.addClass('active');
},
onBackground: function(toggler){
toggler.removeClass('active');
},
onComplete: function(toggler) {
myScrollBar.update();
}
});
当我访问该站点时,我会得到不同的行为,本质上,滚动条看起来就像是在div崩溃后单击一次。换句话说,当全部折叠时,滚动条就在那里,但当其中一个被展开时,滚动条就消失了。