无法正确刷新Bootstrap scrollspy间谍元素

时间:2014-08-12 13:22:45

标签: javascript jquery html ajax twitter-bootstrap

我一直在引用关于Bootstrap的scrollspy组件的this帖子。在我的代码中,我使用以下方法实例化一个新的scrollspy来监视body元素:

$("body").scrollspy({ offset: 25 });

稍后在我的代码中,我进行了一次AJAX调用并在页面中添加/删除元素。这会导致scrollspy错位,所以我需要刷新scrollspy。我尝试过多种方式执行此刷新操作,例如:

$("body").scrollspy("refresh");

$('[data-spy="scroll"]').each(function () {
  $(this).scrollspy('refresh');
}); 

但是,这些代码片段都不会导致scrollspy的行为发生任何变化。我相信这是因为scrollspy直接在body元素上进行间谍活动,但我不确定如何在我的AJAX调用之后进行scrollspy刷新。有谁知道我怎么可能刷新我的卷轴?

1 个答案:

答案 0 :(得分:5)

似乎无法通过调用body来刷新设置为监视$("body").scrollspy()元素的滚动条。为了使用Bootstrap网站上记录的刷新功能,我必须明确声明data-spy标记的data-targetbody属性(其中scrollingNav是{{}用于显示滚动的id栏的1}}:

nav

然后,为了在从页面动态添加/删除元素时刷新此scrollspy,我使用了以下方法:

<body data-spy="scroll" data-target="#scrollingNav">