尝试获取“的滚动事件中的offset()值”;这";使用jQuery,但得到;“未定义”;为此
我试图用jQuery获取“this”的滚动事件中的尝试获取“的滚动事件中的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
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()
返回一个具有左值和顶值的对象。是的,这是一个输入错误,在示例中已更正,感谢您指出这一点。