Перейти к пункту eq в списке

У меня есть этот скрипт:

$('.blog-list li').click(function(e) {
    e.preventDefault();
    $('body').scrollTo('.section:eq(1)', 800);
});

Когда вы нажимаете на элемент списка, вы идете сейчас section:eq(1), Я хочу изменить этот скрипт. Когда вы нажимаете на первый элемент списка, вы переходите к первому разделу.

При нажатии второй пункт списка. Вы идете во второй раздел и т.д. Как я могу это сделать?

4 ответа

Рабочая jsFiddle Демо

Используйте этот код:

$('.blog-list li').each(function (i) {
    $(this).click(function () {
        $('body').scrollTo('.section:eq(' + i + ')', 800);
    });
});
$('.blog-list li').click(function(e) {
   e.preventDefault();
   $('body').scrollTo('.section:eq(' + $('.blog-list li').index(this) + ')', 800);
});

Это мое видение ситуации

 $('.bloc-list li').each(function(index,element){
        $(element).click(function(e){
            e.preventDefault();
            $('body').scrollTo('.section:eq(' + index + ')', 800);
        });
    });
$('.blog-list li').click(function(e) {
    e.preventDefault();
    $('body').scrollTo('.section:eq('+$(this).index()+')', 800);
}); 

демонстрация

Этот метод работает путем динамической замены вызова :eq с индексом элемента, который вызвал функцию, в этом случае, ваш элемент списка с помощью $(this).index(),

Другие вопросы по тегам