我将此代码作为页面的布局。 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获取小提琴。
答案 0 :(得分:6)
您应该致电.scrollspy('refresh')
:
$(document).ready(function () {
$('.accordion').on('shown hidden', function () {
$('body').scrollspy('refresh');
});
});