0

現在、マイクロサイトを構築していますが、問題があります。メニューをクリックして、さまざまなリスト要素にスクロールしたい。これはうまくいっています。しかし、問題は、リスト インデックスを使用してメインメニューの 2 番目または 3 番目の要素にトラバースすることによって、2 番目のメニューのインデックスが最初のメニューに追加することによって 3 で始まるため、最初のメニューでのみ正常に機能することです。間違った電話もそう.mainmenu.childrenですが、正しい電話はわかりません。

問題は、親メニューのみでリスト インデックスを選択するにはどうすればよいかということです。メニューは動的でなければならないため、3 つの異なる ID を使用したくありません。

うまくいけば、誰かが私を助けることができます。

よろしくお願いします

h-man24

$('.mainmenu').children('li').click(function(){     
    var myIndex = $('.mainmenu li').index(this);
    alert(myIndex + "  " + myPosition);
    var myPosition = $('#page > li').eq(myIndex).offset().top;
    $('html, body').animate({scrollTop:myPosition, duration:500, easing:'easeInOutCirc'});  
});

HTML:

<ul>
<li>
    <div>
    <ul class="mainmenu">
    <li>Link to 1</li> (index 0)
    <li>Link to 2</li> (index 1)
    <li>Link to 3</li> (index 2)
    </ul>
    <div>Content 1></div>
    </div>
</li>
<li>
    <div>
    <ul class="mainmenu">
    <li>Link to 1</li> (index 3, should be 0)
    <li>Link to 2</li> (index 4, should be 1)
    <li>Link to 3</li> ....
    </ul>
    <div>Content 2></div>
    </div>
</li>
<li>
    <div>
    <ul class="mainmenu"> 
    <li>Link to 1</li>
    <li>Link to 2</li>
    <li>Link to 3</li>
    </ul>
    <div>Content 3></div>
    </div>
</li>
4

1 に答える 1

2

どうですか:

$('.mainmenu li').click(function(){

    var myIndex = $(this).closest('.mainmenu').children('li').index(this);
    alert(myIndex + "  " + myPosition);
    var myPosition = $('#page > li').eq(myIndex).offset().top;
    $('html, body').animate({scrollTop:myPosition, duration:500, easing:'easeInOutCirc'});      
    });
于 2009-09-13T08:51:51.270 に答える