2012-08-23 106 views
0

這可能是一個簡單的問題,但在閱讀Stack Overflow上的一些教程和其他文章後,我無法得到我正在尋找的東西。如何點擊頁面上的座標?

使用jQuery中的.click()函數,我想單擊頁面上特定的XY位置。我找到的所有教程都是關於如何找到座標的教程,但不是專門點擊它們。

+0

我會認爲你需要移動光標爲了做到這一點,不能在JavaScript中做的弊端。 http://stackoverflow.com/questions/2105733/mouse-move-on-element/2105766 – JDavis

+2

可能的重複http://stackoverflow.com/questions/2845178/triggering-a-javascript-click-event-at-specific -coordinates – Breezer

+0

如果jQuery可以點擊頁面上的特定元素,我會認爲它可以做同樣的只是一個特定的位置,而不是它?不,這不是重複的帖子。 – Dustin

回答

2

Using jQuery to find an element at a particular position?

要得到點(x,y)的使用document.elementFromPoint下的元素。你可以把它包裝在一個jquery對象中,並調用click處理程序來模擬實際的點擊。

function click(x,y) { 
    var element = document.elementFromPoint(x,y); 
    $(element).click(); 
} 

小心使用elementFromPoint關於絕對座標VS視相對座標http://www.zehnet.de/2010/11/19/document-elementfrompoint-a-jquery-solution/

+0

賓果。非常感謝!我知道這不是那麼困難,我只是無法理解它。 – Dustin

+0

Dboy1612你的問題不清楚,這是你在找什麼。你從來沒有說過要獲得元素的任何事情;你只是說你想點擊一個座標。感謝@Nathan爲了解你的真正含義。 – JDavis

0

這是關於jQuery文檔的nice little tutorial。從本質上講它會像這樣:

$('#chosen_element').click(function(e){ 
    alert('X position is:' + e.pageX + 'Y position is:' + e.pageY); 
}); 
+0

這是用於打印點擊元素的位置,而不是用於設置我想要點擊的位置的座標。謝謝你的回答! – Dustin

0

click事件只是綁定到一個元素,那麼處理它相應的...沒有了規範。舉個例子:

$(el).bind('click', function(event){ 
    var x = event.pageX, 
     y = event.pageY; 

    console.log(x + " : " + y); // change to alert to see results with no console 
}); 

你不必擔心正確處理獲得鼠標偏移。 jQuery修復它,所以你可以簡單地說event.pageX/event.pageY在任何瀏覽器中獲得位置。在上面的例子中,我只是將x和y設置爲局部變量,但是如果您不得不在可調用範圍之外使用它,則可以將它們設置爲全局變量。請注意,這會將座標記錄到您的Web控制檯,如果您無法訪問它,請將console.log更改爲alert之類的內容,以確保一切正常。

編輯:重讀你的問題,我的回答修改後:

您可以通過設置它的x和y座標使用document.elementFromPoint針對一個特定的元素。根據this page,它似乎受到主流瀏覽器的支持。

+0

我在這裏感覺有點慢,但是這會基於頁面上的元素點擊座標嗎?或者我可以在某處輸入X和Y值? – Dustin

+0

對不起,我完全誤解了你的問題。我正在更新我的答案。 – jeremy