سؤال

وأنا بناء موقع الصغير في هذه اللحظة، ولدي مشكلة. أريد أن انتقل إلى عناصر قائمة مختلفة من خلال النقر على القائمة بلدي. هذا وتعمل بشكل جيد. ولكن المشكلة هي، باستخدام مؤشر القائمة لتعبر إلى العنصر الثاني أو الثالث من القائمة الأساسية، تعمل بشكل جيد فقط في القائمة الأولى لمؤشر القائمة الثانية بدأت مع 3 بإضافة إلى الأول. حتى .mainmenu.children هي دعوة خاطئة، ولكن أنا لا أعرف الحق واحد.

ولذا فإن السؤال هو، كيف يمكنني تحديد مؤشر القائمة من خلال القائمة والديه فقط؟ أنا لا أريد أن استخدام ثلاث هويات مختلفة لأن القائمة يجب أن تكون دينامية.

ونأمل شخص يمكن أن تساعدني.

وأطيب التحيات

ح-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>
هل كانت مفيدة؟

المحلول

وماذا عن:

$('.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'});      
    });
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top