如何获取被点击元素的位置

时间:2013-05-31 08:38:53

标签: javascript jquery

我的dom层次结构中有一个父div,父div中有大约100个子元素。我在每个子元素上绑定了一个click事件。我想要的是从父元素顶部的子元素的位置。我使用了jquery .position.offset,但两者都从页面顶部返回位置。父div是可滚动的,这意味着隐藏了offlow。所以从点击元素的位置减去顶部位置是行不通的!任何人都可以建议我解决这个问题!

2 个答案:

答案 0 :(得分:3)

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);
    });
});

http://jsfiddle.net/LaEsw/

答案 1 :(得分:2)

.offset()返回相对于文档的位置,而.position()返回相对于偏移父项的位置。 .position()将是您想要的,但您需要父母“定位”(position以外的staticrelativefixedabsolute)。否则,最近的父母将是文档本身,.position()将像.offset()

一样

position:relative添加到您想要基于元素位置的父级。