jQueryで「this」のスクロールイベント内の値を取得しようとしていoffset()
ますが、「未定義」を取得していthis
ます。
私の特定のユースケースのコードと、何が起こるかについてのコメント:
$canvas_frame.contents().find(".ar4 .Tm.aeJ").scroll(function(event){
log("SCROLLING!");
log(this); // successfully logs the DOM element in the console
log($(this).offset()); // ERROR
log($(this).css("top")); // works
});
};
そのため、すべての要素が正常に検出されますが、jQuery セレクター要素で .offset() メソッドを呼び出すと失敗します。Uncaught TypeError: Cannot read property 'pageYOffset' of undefined
失敗せずにその値を取得するにはどうすればよいですか?
アップデート
この例で実際に表示されるエラー メッセージを修正しました。
更新 2
私が気づいたのは、最初はjQueryの結果が空であるかのように、要素がコンソールに記録されるのに少し時間がかかることですが、その後は入力されます.何かアイデアはありますか?
アップデート 3
シンプルなページで動作する JSFiddle でデモを作成しました。http://jsfiddle.net/victorbstan/PBfNu/ ただし、私のコードは iframe 内の要素を見つけようとしています。スクリプトは Chrome 拡張機能を介してページに埋め込まれています。なぜ自分のコードが機能しないのか、まだ疑問に思っています。