这可能是一个如此简单的问题,但是在阅读了一些关于 Stack Overflow 的教程和其他帖子之后,我无法得到我想要的东西。
使用.click()
jQuery 中的函数,我想单击页面上的特定X
, 和Y
位置。我发现的只是有关如何查找坐标的教程,但没有专门单击它们。
这可能是一个如此简单的问题,但是在阅读了一些关于 Stack Overflow 的教程和其他帖子之后,我无法得到我想要的东西。
使用.click()
jQuery 中的函数,我想单击页面上的特定X
, 和Y
位置。我发现的只是有关如何查找坐标的教程,但没有专门单击它们。
要获取点 (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
确保一切正常。
编辑:重读您的问题后,我的答案发生了变化:
您可以通过使用设置特定元素的 x 和 y 坐标来定位特定元素document.elementFromPoint
。根据this page似乎在主要浏览器中都支持。
这是一个关于 jQuery 文档的不错的小教程。基本上它是这样的:
$('#chosen_element').click(function(e){
alert('X position is:' + e.pageX + 'Y position is:' + e.pageY);
});