我一直在引用有关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-targetbody属性(其中scrollingNavid栏的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/

10-10 00:15