1

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

使用.click()jQuery 中的函数,我想单击页面上的特定X, 和Y位置。我发现的只是有关如何查找坐标的教程,但没有专门单击它们。

4

3 回答 3

3

请参阅使用 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/

于 2012-08-23T01:39:32.120 回答
0

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

$(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.logalert确保一切正常。

编辑:重读您的问题后,我的答案发生了变化:

您可以通过使用设置特定元素的 x 和 y 坐标来定位特定元素document.elementFromPoint。根据this page似乎在主要浏览器中都支持。

于 2012-08-23T01:06:52.697 回答
-1

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

$('#chosen_element').click(function(e){
    alert('X position is:' + e.pageX + 'Y position is:' + e.pageY);
});
于 2012-08-23T01:06:32.370 回答