1

ajax経由でロードされるサブメニューがあります。Bootstraps scrollspy を使用して、ユーザーが現在のページのどこにいるかに基づいてサブメニューを強調表示しようとしています。ただし、サブメニューでは機能しません。ajax経由でロードされたためだと思います。サブメニューを強調表示するにはどうすればよいですか?

subnav.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-->

Mainpage.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

をバインドしようとする前に、jQuery の AJAX リクエストが完了するまで [そして最終的にはデータが追加されるまで] 待つ必要がありますscrollspy。コールバックを利用し$().load()ます。

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

$('#body').scrollspy()を呼び出したときにドキュメントの準備ができていないため、 が間違っているよう$('#body')です。

UPDATE : の下にスクリプト ブロックがあるため<body>、上記のステートメントは無視してください。

また、要素をターゲットにする場合は、 (as targets elements with ids)なし<body>で使用します。$('body')##

これを試して:

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 に答える