无法正确刷新引导程序滚动间谍监视<body>元素



我一直在引用这篇关于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-spydata-target属性(其中scrollingNavnav条的id,用于可视化滚动):

<body data-spy="scroll" data-target="#scrollingNav">

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

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

相关内容

最新更新