質問: $(window).scrollTop(); if (scTop > itemPos - winH + winH/split) { $(this).addClass('addAnime2'); //本当は同じaddAnimeを追加したい } }); } }); }); ``` **### ■つまづいてるところ** eachの中に、$(window).scroll(function () {});をいれて、更にif分岐をさせたら うまく機能してないようで、addClass2の方が追加されませんでした。(else以降が機能していない?) ちなみに、上記のコードでは、はじめの分岐とあとの違うタイミングでクラスが追加されていることがわかるように、 addAnime2としていますが、最終的には一つのクラスで管理したいと考えています。 **### ■補足** jQuery自体を使う際は、普段ほとんどコピーが多く実際書いて使う機会があまりないのですが、 実現したいことがあり調べながら試してみたのですが、つまづいています。 宜しくお願いします。
回答: ``` $(this).addClass('addAnime2'); //本当は同じaddAnimeを追加したい ``` 上の `this` が対象要素を指していないためかと思います。 別の function 内にあるため、別のオブジェクトを指しています。 以下のように function 外から変数で渡せば参照できます。 ``` } else { var $item = $(this); // 変数に入れる $(window).scroll(function () { var scTop = $(window).scrollTop(); if (scTop > itemPos - winH + winH/split) { $item.addClass('addAnime2'); // 変数を参照する } }); } ```