我一直在引用这篇关于Bootstrap的scrollspy组件的文章。在我的代码中,我实例化了一个新的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").scrollspy()
来刷新设置为监视body
元素的scrollspy。为了使用Bootstrap网站上记录的刷新功能,我必须显式声明body
标签的data-spy
和data-target
属性(其中scrollingNav
是nav
条的id
,用于可视化滚动):
<body data-spy="scroll" data-target="#scrollingNav">
然后,当元素从页面中动态添加/删除时,为了刷新这个scrollspy,我使用了以下方法:
function refreshScrollSpy() {
$('[data-spy="scroll"]').each(function () {
$(this).scrollspy('refresh');
});
};