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刷新.有谁知道我怎么可能刷新我的卷轴?
似乎无法刷新body通过调用设置为侦听元素的scrolllspy $("body").scrollspy().为了使用记录的引导网站上的刷新功能,我必须明确地声明data-spy,并data-target在属性body标签(这里scrollingNav是id对的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)