来自javascript调用的Bootstrap ScrollSpy无效

时间:2013-02-21 15:28:31

标签: jquery twitter-bootstrap

我正在构建一个基于引导程序的网站,目前我遇到了问题。 如果我从data-attributes致电:

<body  data-target=".navbar" data-spy="scroll"  data-offset="200">

Scrollspy确实有用。

但是如果我使用javascript

$('.navbar').scrollspy({offset:200});

这不起作用!

我也已尝试动态放置属性:

$("body").data("target", ".navbar");
$("body").data("spy", "scroll");
$("body").data("offset", "200");
到目前为止没有结果。

我认为javascript调用缺少一些东西。如果$('。navbar')是目标,我在哪里可以设置间谍对象(正文)?

2 个答案:

答案 0 :(得分:0)

有不同的方法可以做到这一点,看看这是否对您有所帮助:http://jsfiddle.net/panchroma/Tgghc/

使用数据属性,重要位包括您要监视的div中的数据间谍详细信息:

<div id="nav-wrapper" data-spy="affix" data-offset-top="200">
.....  

然后在你的CSS中定义你想要在这个div上发生什么时,例如:

#nav-wrapper.affix {
top: 0;
width: 100%
}

由于附加的div将从正常流中删除,因此有时您需要播放一下,因此词缀行为不会导致主内容的跳转。

祝你好运!

答案 1 :(得分:0)

通过JavaScript调用scrollspy时,请指定body标记(或带有滚动条的其他元素)并将目标nav作为选项传入。

$('body').scrollspy({ target: '.navbar' });

我不确定为什么引导文档会说$('#navbar')。scrollspy()。这是非常误导的。