3

我有这个代码作为页面的布局。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 能够“看到”空间。任何帮助将不胜感激。单击此处获取小提琴。

4

1 回答 1

6

You should call .scrollspy('refresh') :

$(document).ready(function () {

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

});
于 2013-06-27T09:11:19.853 回答