【发布时间】:2018-07-19 02:13:21
【问题描述】:
我正在使用 jQuery,需要获取一个元素的位置。
我先写了这样的代码:
x=$("p").offset;
Top = x().top; // bug here
我发现浏览器找不到顶部,因为这里的 x() 为空。
所以我改写成这样:
x=$("p").offset;
y=$("p").offset();
Top = y.top;
好的,现在可以了。
但是为什么??? 我认为 y.top 应该与 x().top 相同,因为 x() 是 $("p").offset()。
【问题讨论】:
-
offset是一个方法而不是一个属性,这就是它起作用的原因 -
它返回一个具有
left和top属性的对象。阅读文档会自己回答这个问题 -
从它的 jQuery 对象中删除
offset方法会丢失this上下文。我怀疑报告的错误消息中会有相关信息 -
我很好奇为什么
x=$("p").offset不能作为函数参考。我知道不是我只是好奇为什么 -
等效的调用是
p = $('p'); x = p.offset; x.call(p).top。见developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
标签: javascript jquery frontend offset