最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Bootstrap Scrollspy stops working after an AJAX call added elements to the page - Stack Overflow

programmeradmin2浏览0评论

I am using the Bootstrap scrollspy plugin (v2.0.0) which works without a problem when the page loads first.

The navigation bar as well as the content sections get updated via ajax calls (add or remove menu items). After this scrollspy doesn't highlight the newly added items anymore.

How do I tell scrollspy to refresh? Or maybe attach scrollspy manually to the following code?

  <body data-spy="scroll" data-target=".subnav" data-offset="0">
    <div id="listing">
      <div class="subnav">
        <ul class="nav nav-pills nav-stacked">
          <li><a href="#cat2">Home &amp; Garden</a></li>
          <li><a href="#cat5">Computers &amp; Networking</a></li>
        </ul>
      </div>  
      <div>
        <section id="cat2">...</section>
        <section id="cat5">...</section>
      </div>
    </div>
  </body>

I am using the Bootstrap scrollspy plugin (v2.0.0) which works without a problem when the page loads first.

The navigation bar as well as the content sections get updated via ajax calls (add or remove menu items). After this scrollspy doesn't highlight the newly added items anymore.

How do I tell scrollspy to refresh? Or maybe attach scrollspy manually to the following code?

  <body data-spy="scroll" data-target=".subnav" data-offset="0">
    <div id="listing">
      <div class="subnav">
        <ul class="nav nav-pills nav-stacked">
          <li><a href="#cat2">Home &amp; Garden</a></li>
          <li><a href="#cat5">Computers &amp; Networking</a></li>
        </ul>
      </div>  
      <div>
        <section id="cat2">...</section>
        <section id="cat5">...</section>
      </div>
    </div>
  </body>
Share Improve this question edited May 16, 2012 at 20:43 Shog9 160k36 gold badges235 silver badges240 bronze badges asked Feb 18, 2012 at 14:18 FraxinusFraxinus 2412 silver badges5 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 15

scrollspy('refresh') will simply do what the name says!

In my case I added the follwing code after the ajax call:

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

评论列表(0)

  1. 暂无评论