在特定坐标处触发 JavaScript click() 事件

IT技术 javascript jquery click triggers
2021-01-27 20:28:03

试图触发(触发)点击事件。在 jQuery 中很容易做到,但无法弄清楚如何设置事件的坐标并将它们一起发送。

本质上,我需要在特定位置触发点击(这是在 trigger() 调用之前计算的)。

有什么方法可以做到这一点(在 jQuery 或其他方式中)?

谢谢 -

2个回答

事件对象设置pageXpageY属性(已规范化)并将其传递给,如下所示:.trigger()

var e = new jQuery.Event("click");
e.pageX = 10;
e.pageY = 10;
$("#elem").trigger(e);
不,触发您自己的点击事件通常不会触发与真实点击相关的“默认操作”。如果您想将可编辑 div 中的输入焦点设置为特定点,您将有一些令人不快的浏览器特定范围黑客代码要做。
2021-03-14 20:28:03
不适用于 <canvas>。我在页面上尝试使用您的代码:codepen.io/r0ysy0301/full/grjaOp
2021-03-14 20:28:03
您的代码似乎可以正常运行,但没有出现所需的结果(将光标定位在内容可编辑的 div 内)。此方法是否发送本机 click() 事件,就像我实际单击该位置一样?看起来不是这样。谢谢 -
2021-03-27 20:28:03
好吧,这是我真正的问题(请参阅其他帖子的链接)。我认为触发 click() 事件可能会解决它 - 但显然不是:stackoverflow.com/questions/2844649/...
2021-04-03 20:28:03
仍然投票 - 你的回答肯定是有效的。
2021-04-05 20:28:03

“.trigger()”调用接受一个“extraParameters”参数,你可以用它来填充我认为的 XY 坐标。 文档

.trigger("click", [x, y]);
您可以将匿名函数作为.trigger调用的第二个参数传递该函数返回具有所需顶部和左侧值的位置函数。function () { this.position = function() { this.left = x; this.top = y; }; }
2021-04-06 20:28:03