Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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
使用jquery live更新滚动条_Jquery_Scrollbar_Mouseevent_Live - Fatal编程技术网

使用jquery live更新滚动条

使用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中

我正在制作一个网页,它使用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崩溃后单击一次。换句话说,当全部折叠时,滚动条就在那里,但当其中一个被展开时,滚动条就消失了。