Bootstrap 3 Scrollspy激活事件未触发

And*_*san 2 html scrollspy twitter-bootstrap-3

我正在尝试使用带有Scrollspy的Bootstrap 3 RC1创建一个站点.我的网页现在非常简单,基本上是这样设置的:

<html>
    <head>
        <!-- Head stuff here -->
    </head>

    <body>
        <section id="section_1" data-spy="scroll">
            <!-- stuff in here -->
        </section>
        <section id="section_2" data-spy="scroll">
            <!-- stuff in here -->
        </section>
        <section id="section_3" data-spy="scroll">
            <!-- stuff in here -->
        </section>

        <JScripts here ... />
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我通过调用初始化了Scrollspy,$("section").scrollspy()并且我已经设置了这样的事件处理程序:

$("section").on("activate", function(e) {
    // do stuff
});
Run Code Online (Sandbox Code Playgroud)

我的问题是这个activate事件永远不会被解雇.有谁知道它为什么不起作用?我注意到所有教程都使用导航栏突出显示当前部分,但我真的不想要一个导航栏.

jos*_*hke 5

你对scrollspy的标记有点偏.Scrollspy可能不会被解雇,这就是为什么你可能没有得到任何结果.根据我的经验,使用数据属性来启动scrollspy要容易得多.如果你将滚动监听器附加到除了主体本身之外的任何其他元素,我还没有读过它的一个报告.

您应该像这样将它们应用到您的身体标签.

<body data-spy="scroll" data-target="#YOUR NAV CONTAINER">
Run Code Online (Sandbox Code Playgroud)

此外,您需要确保您的导航结构如下所示:

<div id="YOUR NAV CONTAINER">
     <ul class="nav">
          <li><a href="#SECTIONID">list item</a></li>
          <li><a href="#SECTIONID">list item2</a></li>
     </ul>
</div>
Run Code Online (Sandbox Code Playgroud)