2013-05-31 65 views
3

我有一個父div在我的dom層次結構和大約100個子元素在父div內。我在每個子元素上綁定了一個click事件。我想要的是從父元素頂部的子元素的位置。我用jquery .position nd .offset但都返回從頁面頂部的位置。父div是可滾動的,這意味着offlow被隱藏。所以從被點擊的元素的位置減去頂部位置不會工作!任何人都可以爲我提供一個解決方法!如何獲得點擊元素的位置

+0

將'relative'設置爲父塊並使用'.position()'。 – VisioN

+0

你想要精確的像素位置或只是基準位置? – exexzian

回答

2

添加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/

+0

它不適合我! –

+0

@DimalChandrasiri如果您發佈示例HTML,會更好。 – Joseph

+0

@DimalChandrasiri我加了一個例子小提琴 – CodingIntrigue

1

.offset()返回相對於文檔的位置,而.position()返回相對於偏移父項的位置。 .position()將是你想要在這裏,但你需要父母被「定位」(有position而不是static,如relative,fixedabsolute)。否則,位置最近的父級將是文檔本身,並且.position()將表現爲.offset()

position:relative添加到要基於元素位置的父級。