我一直在引用 this关于 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 刷新。有谁知道我可以如何刷新我的 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');
});
};
关于javascript - 无法正确刷新监视 <body> 元素的 Bootstrap scrollspy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25265425/