无法正确刷新<body>元素上的Bootstrap scrollspy spying

Pau*_*ito 6 html javascript ajax jquery twitter-bootstrap

我一直在引用关于Bootstrap的scrollspy组件的这篇文章.在我的代码中,我使用以下方法实例化一个新的scrollspy来监视body元素:

$("body").scrollspy({ offset: 25 });
Run Code Online (Sandbox Code Playgroud)

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

$("body").scrollspy("refresh");
Run Code Online (Sandbox Code Playgroud)

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

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

Pau*_*ito 5

似乎无法刷新body通过调用设置为侦听元素的scrolllspy $("body").scrollspy().为了使用记录的引导网站上的刷新功能,我必须明确地声明data-spy,并data-target在属性body标签(这里scrollingNavid对的nav,其中以可视化的滚动条):

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

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

function refreshScrollSpy() {
    $('[data-spy="scroll"]').each(function () {
        $(this).scrollspy('refresh');
    }); 
};
Run Code Online (Sandbox Code Playgroud)