2

メインナビゲーションとサブナビゲーションがアンカーで構成されている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');


});

それは多かれ少なかれ動作します。これが私の2つの質問です:

  1. 「elが定義されていません」というエラーがスローされるのはなぜですか
  2. 「class_1」など、同じクラスの後続の要素が多数あるため、結果は「ちらつき」ます。クラスを読んだ位置に他の値がない限り、実際の値、たとえば「1」を保存できますか?

ご協力いただきありがとうございます。

ファビアン

4

1 に答える 1

0

jQuery Webサイトからの引用:

jQuery 1.6以降、.attr()メソッドはundefined設定されていない属性を返します。

class使用可能な属性があることを確認してください。

于 2011-12-01T17:36:13.987 に答える