position()offset()有什么区别?我try 在单击事件中执行以下操作:

console.info($(this).position(), $(this).offset());

而且他们似乎返回完全相同的...(单击的元素位于表中的表单元格内)

推荐答案

它们是否相同取决于上下文.

  • position返回{left: x, top: y}对象relative to the offset parent

  • offset返回{left: x, top: y}对象relative to the document.

显然,如果文档是抵销父级(通常是这种情况),则它们将是相同的.offset parent是"位置最接近的包含元素".

For example, with this document:

 <div style="position: absolute; top: 200; left: 200;">
     <div id="sub"></div>
 </div>

那么$('#sub').offset()将是{left: 200, top: 200},但它的.position()将是{left: 0, top: 0}.

Jquery相关问答推荐

点击和touch 事件之间的jQuery冲突解决方法

如何使用 aria-expanded="true" 更改 CSS 属性

jQuery / Ajax - $.ajax() 将参数传递给回调 - 使用好的模式?

如何在 jquery 中包含 !important

JQuery通过类名获取所有元素

jQuery javascript 正则表达式 将
替换为 \n

在 select2 中使用 AJAX 进行标记

组合数组时无法读取未定义的属性推送

Ajax 更新后在 jQuery 中重新绑定事件(更新面板)

jQuery .hide() 和 .css("display", "none") 的区别

moment.js isValid 函数无法正常工作

即时替换 css 文件(并将新样式应用于页面)

使用 jQuery 从 AJAX 响应(json)构建表行

在 JQuery .trigger 上传递参数

$(document).on("click"... 不工作?

如何测试 URL 字符串是绝对的还是相对的?

删除 Javascript 中的所有多个空格并替换为单个空格

如何在 ReactJS 中使用 JQuery

如何使用 jquery 更改元素类型

使用 jQuery 检测元素内容的变化