0

みんなイムはこれに固執し、アクティブなクラスを与えています。それは単に私のために機能していません-私はコードを示します、それはあなたが私をより速く助けるかもしれません。私は理論の背後にあるJqueryロジックを知っていますが、実際にはそれはとにかく行われていません。それが私がそれを尋ねに来た理由です。http://jsfiddle.net/j08691/dZ9KP/12/にあります。

<div id="MainContainer">
  <ul id="MainNav">
    <li> <a href="#page1">   title 1  </a>     </li>
    <li>    <a  href="#page2">  title 2 </a>     </li>                
  </ul>
  <div id="MainContent">
    <div class="MainContentEach" id="page1">
      title 1 content
    </div>
    <div class="MainContentEach" id="page2">
      title 2 content
    </div>
  </div>
</div>

JS

     $(function () {
        $('#MainNav a').click(function () {
        pageId = $(this).attr('href');
        num = $('#MainNav a').index(this);
        $(pageId).parent().animate({ scrollTop: (500 * num) }, 'slow');
        });
      });

どんな助けでもいただければ幸いです。

4

1 に答える 1

4

activeクリックされたときにタグに呼び出されるクラスを追加するだけでよい場合は、次の<a>ようにすることができます。

$(function () {
    $('#MainNav a').click(function () {
         pageId = $(this).attr('href');
         num = $('#MainNav a').index(this);
         $(pageId).parent().animate({ scrollTop: (500 * num) }, 'slow');

         $('#MainNav a').each(function () {
             if ($(this).hasClass('active')) {
                 $(this).removeClass('active');
             }
         });

         if (!$(this).hasClass('active')) {
             $(this).addClass('active');
         }
    });
});

activeこれにより、タグと呼ばれるクラスが追加<a>されます。このクラスはスタイルシートで定義する必要があることに注意してください。

于 2012-12-19T17:53:50.033 に答える