Novitsky
@Novitsky
Веб-разработчик, дизайнер, фотограф

Почему не срабатывает скрипт подсветки активных пунктов меню?

Есть скрипт для подсветки активных пунктов меню при ссылках на якоря:
jQuery(function($) {
    $(window).scroll(function() {
        $(".scrollbox").each(function() {
            var window_top = $(window).scrollTop();
            var div_top = $(this).offset().top;
            var div_1 = $(this).attr('id');
            if (window_top > div_top - 120) {
                $('#menu').find('li').removeClass('current');
                $('#menu').find('li[class="' +div_1+ '"]').addClass('current');
            } else {
                $('#menu').find('li[class="' +div_1+ '"]').removeClass('current');
            };
        });
    });
});

Пример взят отсюда.
Его суть в том, что при прокрутке у первого пункта меню удаляется класс current и добавляется к пункту меню, ссылка которого ведет на блок, отображаемый в данный момент на странице.
Так вот, скрипт удаляет класс, а к следующему пункту меню почему-то не подставляет его.
То есть, вот эта строчка выполняется:
$('#menu').find('li').removeClass('current');
А дальше нет.
Живой пример.

В чем ошибка?
  • Вопрос задан
  • 2613 просмотров
Пригласить эксперта
Ответы на вопрос 1
@onegin_evgen
У меня та же проблема, скрипт не работает ни в первом, ни во втором варианте
вот мой скрипт:

jQuery(function ($) {
$(window).scroll(function(){
$(".metka").each(function () {
var window_top = $(window).scrollTop();
var div_top = $(this).offset().top;
var div_1 = $(this).attr('id');
if (window_top > div_top - 120){
$('#smenu').find('a').removeClass('uMenuItemA');
$('#smenu').find('a[class="'+div_1+'"]').addClass('uMenuItemA');
}
else{
$('#smenu').find('a[class="'+div_1+'"]').removeClass('uMenuItemA');
};
});
});
});

при прокрутке у первого пункта меню удаляется класс uMenuItemA, но потом не добавляет его к следующим пунктам

мой сайт

подскажите где ошибся, заранее спаибо
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы