javascript - 无法正确刷新监视 <body> 元素的 Bootstrap scrollspy

标签 javascript jquery html ajax twitter-bootstrap

我一直在引用 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 网站上记录的刷新功能,我必须显式声明 bodydata-spydata-target 属性> 标记(其中 scrollingNavnav 栏的 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/

相关文章:

php - 如何重定向整个站点和除我的 IP 地址以外的所有流量?

javascript - jQuery - 在特定页面上隐藏元素

javascript - 如何在 amcharts 的周期选择器中显示日历 View ?

javascript - 即使发生匹配,$.grep 也会返回空数组

html - 环绕位置 : relative

Javascript检测悬停是在元素的底部还是顶部填充

javascript - 如何仅将 *selected* 文本更改为大写,而不是选择存在的整个段落

javascript - 删除jquery中的div子元素

Jquery .each 不起作用,代码错误还是有更好的方法可用?

javascript - 在 cordova/ratchet 移动应用程序中发出 AJAX 请求时遇到困难