尝试获取“的滚动事件中的offset()值”;这";使用jQuery,但得到;“未定义”;为此

尝试获取“的滚动事件中的offset()值”;这";使用jQuery,但得到;“未定义”;为此,jquery,Jquery,我试图用jQuery获取“this”的滚动事件中的offset()值,但是this的值为“undefined” 针对我的特定用例的代码,以及对发生的情况的注释: $canvas_frame.contents().find(".ar4 .Tm.aeJ").scroll(function(event){ log("SCROLLING!"); log(this); // successfully logs the DOM element in the console

我试图用jQuery获取“this”的滚动事件中的
offset()
值,但是
this
的值为“undefined”

针对我的特定用例的代码,以及对发生的情况的注释:

$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()方法失败:
uncaughttypeerror:无法读取未定义的属性“pageYOffset”

我如何才能在不失败的情况下获得该值

更新 我已经更正了这个示例中实际收到的错误消息

更新2 我注意到,将元素记录到控制台需要一段时间,就好像最初jQuery结果是空的,但之后它会被填充。有什么想法吗

更新3 我已经用JSFIDLE创建了一个演示,它可以在一个简单的页面中工作。
但是,我的代码试图在iframe中查找元素,脚本通过Chrome扩展嵌入到页面中。我仍然想知道为什么我的代码不起作用。

这不是一个完整的答案,因为我仍然不知道如何解决它。但这可能会有所帮助

我想这是因为。我最初尝试使用此修补程序:

$ sed -ri 's/(win\.page[XY]Offset)/win \&\& \1/' jquery.js

在这一点上,错误消失了,尽管我有时会得到
null
作为
offset()
结果。

我猜这是一个打字错误,但它不是
offset()
而是
offset()
。另外,
offset()
返回一个具有左值和顶值的对象。是的,这是一个输入错误,在示例中已更正,感谢您指出这一点。