使用bootstrap scrollspy为崩溃的div,到附加的侧边栏

时间:2013-06-27 05:54:59

标签: javascript jquery twitter-bootstrap

我将此代码作为页面的布局。 span9 div包含应该应用scrollspy的部分。每个部分都是一组包含实际内容的可折叠div。 span3 div是附加的侧边栏,必须使用scrollspy突出显示正确的项目。

<div class="span3 module-sidebar">
    <ul id="sidebar" data-spy="affix"  data-offset="250" data-offset-bottom="0" class="nav nav-list bs-docs-sidenav affix">
        <li>
            <a href="#module1"><i class="icon-chevron-right"></i>Module1 Name</a>
        </li>
    </ul>
</div>

<div class="span9" data-spy="scroll" data-target="#sidebar">
    <section id="module1">
        <div class="page-header">
            <h1>Module1 Name</h1>
        </div>

        <div class="bs-docs-example">
            <div class="accordion" id="accordion2">
                <div class="accordion-group">
                    <div class="accordion-heading">
                        <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#function1">Function1 Name</a>
                    </div>
                    <div id="function1" class="accordion-body collapse in">
                        <div class="accordion-inner">
                        <h3>Topic1 Name</h3>
                        <p>Topic1 Desc</p>                              
                            <h4>SubTopic1 Name</h4>
                            <p>SubTopic1 Desc</p>                                   
                                <h4><img src="../assets/img/manuals/module1/function1/step1.png"/></h4>
                                <p>Step1 Desc</p>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>
</div>

问题是,当我折叠div以显示内容时,scrollspy将无法通过可折叠div识别新占用的空间。因此,当我滚动浏览可折叠div的内容时,会突出显示侧边栏中的下一个项目。

我想要的是当可折叠div展开时,scrollspy“看到”空格。真的很感激任何帮助。点击here获取小提琴。

1 个答案:

答案 0 :(得分:6)

您应该致电.scrollspy('refresh')

$(document).ready(function () {

    $('.accordion').on('shown hidden', function () {
        $('body').scrollspy('refresh');
    });

});