JQuery: переключать класс на якоре при прокрутке - PullRequest
2 голосов
/ 01 декабря 2011

У меня есть html-документ с основной навигацией, а поднавигатор состоит из якорей.Я пытаюсь переключить класс на якорь (subnavigation) при прокрутке документа.

С JQuery я попробовал следующее:

$(function() {

    $(window).scroll(function () {

    //define position where i want to know the class
    var elem = document.elementFromPoint(400, 300) // x, y

    //read the class at position
    el = $(elem).attr('class');

    //get substring of last class in element
    //last classes are class_1, class_2, class_3, aso.
    subclass = el.substr(el.length-1); //throws an error "el is not defined"

    //toggle class
    $('a.class_'+subclass).toggleClass('additionalClass');


});

Это работает более или менее.Вот мои два вопроса:

  1. почему он выдает ошибку "el не определен"
  2. результат "мерцает", потому что есть много последующих элементов с тем же классом,например, "класс_1".Можно ли сохранить фактическое значение, например, «1», если на месте, где я читаю классы, нет другого?

Спасибо за вашу помощь.

Фабиан

1 Ответ

0 голосов
/ 01 декабря 2011

Цитата с сайта jQuery :

Начиная с jQuery 1.6, метод .attr() возвращает undefined для атрибутов, которые не были установлены.

Убедитесь, что доступен атрибут class.

...