2009-12-11 130 views
0

高所有,我想知道是否有可能通過其座標選擇一個頁面元素?通過座標獲取元素?

原因是我試圖做一個可編輯頁面,您可以右鍵單擊突出顯示的元素,出現菜單,然後從選項中選擇給出。使用唯一的方法,我可以找到,通過懸停它使用(event.target)選擇元素,如果有很多父母與其他代碼結合,它會循環並丟失其他數據。如果我能找到另一種突出顯示當然更好的元素的方法。

+0

我上傳了一個演示來演示。如果右鍵單擊該頁面,突出顯示一個段落但是在右側,則應該看到菜單出現在其所在的位置,然後消失,然後進入左上角。 http://www.actwebdesigns.co.uk/test – 2009-12-11 08:40:31

+2

請參閱http://stackoverflow.com/questions/1569775/how-do-i-find-the-dom-node-that-is-at-a -given-xy-position-hit-test和http://stackoverflow.com/questions/1471047/how-to-know-what-elements-are-in-current-mouse-position和http://stackoverflow.com/questions/48999/getting-div-id-based-on-xy-position/54595#54595 – 2009-12-11 08:41:16

+0

Crescent Fresh你還應該補充說'elementFromPoint'在瀏覽器和瀏覽器之間的行爲是不同的。因此,它不是真的跨瀏覽器兼容的 – jitter 2009-12-11 09:06:17

回答

0

這是一個可怕的方式去做你正在做的事情,我從經驗講:我繼承了一個日曆工具,根據你的鼠標座標計算出你點擊的月份的哪一天。這個愚蠢的東西當然有效,但它是一個巨大的PITA以任何方式維護/修改/添加。

更好的方式去實現它(除非你想要在未來的維護噩夢)是使用事件對象。如果你把你的事件連接到正確的對象並使用e.target(或者,如果你使用jquery,這個「this」),你應該能夠非常容易地根據用戶點擊的地方發送正確的動作,而沒有任何協調的廢話。