1

我有一个通过 ajax 加载的子菜单。我正在尝试使用 Bootstraps scrollspy 根据用户在当前页面上的位置突出显示子菜单。但是它不适用于我的子菜单。我相信它是因为它是通过 ajax 加载的。如何让子菜单突出显示?

子导航.html

<div class="span3 affix">
    <div class="well sidebar-nav">
        <ul class="nav nav-list">
            <li class="nav-header">Document</li>
        <li><a href="#a">A</a></li>
        <li><a href="#b">B</a></li>
        </ul>
     </div><!--/.well -->
</div><!--/span-->

主页.html

<body>
    <div id="sub-nav"></div>

    <div id="a" style="margin-bottom:200px;"></div>

    <div id="b" style="margin-bottom:200px;"></div>

</body>

<script>
jQuery(function(){
    $('#sub-nav').load('apps_subnav.html');
    $('body').scrollspy();
});
</script>
4

2 回答 2

5

在尝试绑定scrollspy. 使用$().load()回调。

jQuery(function(){
  $('#sub-nav').load('subnav.html', function(){
    $('body').scrollspy();
  });
});
于 2013-05-15T21:34:30.643 回答
0

好像你$('#body').scrollspy()放错地方了,因为当你打电话时文件还没有准备好$('#body')

更新:由于您的脚本块位于 下方<body>,请忽略上面的语句。

此外,如果您想定位<body>元素,请使用$('body')不带#(作为#具有 ids 的目标元素)。

试试这个:

jQuery(function(){
    $('#sub-nav').load('subnav.html');
    $('body').scrollspy();       
    // Or did you intend to target an element with id 'body'?
});
于 2013-05-15T21:27:03.963 回答