JQuery:滚动时在锚点上切换类

时间:2011-12-01 12:31:14

标签: jquery scroll toggleclass

我有一个带有主导航的html文档和一个由锚点组成的子导航。 我正在尝试的是在滚动文档时将类切换到锚点(子导航)。

使用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 is not defined”
  2. 结果“闪烁”,因为有许多后续元素具有相同的类,例如“class_1”。可以是实际值,例如只要没有其他人在我阅读课程的位置上,就会存储“1”吗?
  3. 感谢您的帮助。

    费边

1 个答案:

答案 0 :(得分:0)

来自jQuery网站的引用:

  

从jQuery 1.6开始,.attr()方法为尚未设置的属性返回undefined

确保有class属性可用。