我的 dom 层次结构中有一个父 div,父 div 中有大约 100 个子元素。我在每个子元素上绑定了一个点击事件。我想要的是父元素顶部的子元素的位置。我使用 jquery .position
nd.offset
但两者都从页面顶部返回位置。父 div 是可滚动的,这意味着流量是隐藏的。所以从点击元素的位置减去顶部位置是行不通的!谁能建议我解决这个问题!
问问题
12600 次
2 回答
5
给父元素添加position: relative;
样式:
HTML:
<div style="position: relative">
<div style="position: absolute; top: 200px; left: 200px;" id="clicker">Click Me</div>
</div>
Javascript:
$(function() {
$("#clicker").click(function() {
var $clicker = $(this);
var pos = $clicker.position();
console.log(pos.top);
console.log(pos.left);
});
});
于 2013-05-31T08:40:19.940 回答
2
.offset()
返回相对于文档.position()
的位置,同时返回相对于偏移父级的位置。.position()
将是您在这里想要的,但您需要将父级“定位”(具有position
除、static
like或之外的其他值)。否则,最近定位的父级将是文档本身,并且会像relative
fixed
absolute
.position()
.offset()
添加position:relative
到要作为元素位置基础的父级。
于 2013-05-31T08:41:29.710 回答