我一直在引用有关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。有谁知道我怎么刷新我的滚动? 最佳答案
似乎无法通过调用body
刷新设置为对$("body").scrollspy()
元素进行监视的scrollspy。为了使用Bootstrap网站上记录的刷新功能,我必须显式声明data-spy
标记的data-target
和body
属性(其中scrollingNav
是id
栏的nav
,可在其中可视化滚动):
<body data-spy="scroll" data-target="#scrollingNav">
然后,要在从页面动态添加/删除元素时刷新此滚动显示,我使用了以下方法:
function refreshScrollSpy() {
$('[data-spy="scroll"]').each(function () {
$(this).scrollspy('refresh');
});
};
关于javascript - 无法正确刷新<body>元素上的Bootstrap scrollspy spy 程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25265425/