如何单击页面上的坐标

How do I click coordinate on page?

本文关键字:坐标 何单击 单击      更新时间:2023-09-26

这可能是一个很简单的问题,但在阅读了一些关于Stack Overflow的教程和其他帖子后,我找不到我想要的东西。

使用jQuery中的.click()函数,我想单击页面上特定的XY位置。我找到的都是关于如何找到坐标的教程,但没有专门点击它们。

请参阅使用jQuery在特定位置查找元素?

要获取点(x,y)下的元素,请使用document.elementFromPoint。您可以将其封装在jquery对象中,并调用单击处理程序来模拟实际的单击。

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

注意使用elementFromPoint在绝对坐标与视口相对坐标方面的缺点http://www.zehnet.de/2010/11/19/document-elementfrompoint-a-jquery-solution/

只需将一个点击事件绑定到一个元素,然后进行相应的处理。。。没有什么不符合规范的。例如:

$(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的内容,以确保一切正常。

编辑:重读你的问题后,我的答案变了:

通过使用document.elementFromPoint设置特定元素的x和y坐标,可以将其作为目标。根据此页面,它似乎在主要浏览器中得到支持。

这里有一个关于jQuery文档的不错的小教程。本质上是这样的:

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