Javascript 如何使用addEventListener获取用户单击坐标,然后使用elementFromPoint()重复该单击。单击()?

Javascript 如何使用addEventListener获取用户单击坐标,然后使用elementFromPoint()重复该单击。单击()?,javascript,dom,Javascript,Dom,我如何获得用户点击的坐标,然后在点击后立即或一秒钟重复点击 当我使用下面的代码时,第二行的console.log会被打印多次,但第二次单击的预期效果不起作用。但是,当我像document.elementFromPoint(11,54)中那样将数字放入elementFromPoint时,它会起作用 myPost.addEventListener(“单击”,e=>{ console.log(e.clientX,e.clientY); var xclick=e.clientX; var yclick

我如何获得用户点击的坐标,然后在点击后立即或一秒钟重复点击

当我使用下面的代码时,第二行的console.log会被打印多次,但第二次单击的预期效果不起作用。但是,当我像document.elementFromPoint(11,54)中那样将数字放入elementFromPoint时,它会起作用

myPost.addEventListener(“单击”,e=>{
console.log(e.clientX,e.clientY);
var xclick=e.clientX;
var yclick=e.clientY;
document.elementFromPoint(11,54).click();//这是有效的
document.elementFromPoint(e.clientX,e.clientY).click();//这些都不起作用
document.elementFromPoint(xclick,yclick).click();//这些无效
//这些不起作用
setTimeout(函数(){
//document.elementFromPoint(e.clientX,e.clientY).click();
document.elementFromPoint(xclick,yclick).click();
}, 1000);
});

JS-Bin
单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我

据我所知,您需要保持协调:

constmypost=document.querySelector('p');
让t;
myPost.addEventListener(“单击”,e=>{
console.log(e.clientX,e.clientY);
const newClick=document.createEvent('MouseEvents');
newClick.initMouseEvent('click',!0,!0,window,1,e.screenX,e.screenY,e.clientX,e.clientY,!1,!1,!1,!0,null);
清除超时(t);
t=设置超时(函数(){
document.elementFromPoint(e.clientX,e.clientY).dispatchEvent(newClick);
}, 1000);
});

单击我

据我所知,您需要保持协调:

constmypost=document.querySelector('p');
让t;
myPost.addEventListener(“单击”,e=>{
console.log(e.clientX,e.clientY);
const newClick=document.createEvent('MouseEvents');
newClick.initMouseEvent('click',!0,!0,window,1,e.screenX,e.screenY,e.clientX,e.clientY,!1,!1,!1,!0,null);
清除超时(t);
t=设置超时(函数(){
document.elementFromPoint(e.clientX,e.clientY).dispatchEvent(newClick);
}, 1000);
});
单击我

var xclick
瓦西里克
myPost.addEventListener(“单击”,e=>{
if(xclick==未定义){
xclick=e.clientX;
yclick=e.clientY;
}
console.log(xclick,yclick);
//document.elementFromPoint(11,54).click();//这是有效的
document.elementFromPoint(e.clientX,e.clientY).click();//这些都不起作用
document.elementFromPoint(xclick,yclick).click();//这些无效
//这些不起作用
setTimeout(函数(){
//document.elementFromPoint(e.clientX,e.clientY).click();
document.elementFromPoint(xclick,yclick).click();
}, 1000);
});

JS-Bin
单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我
var xclick
瓦西里克
myPost.addEventListener(“单击”,e=>{
if(xclick==未定义){
xclick=e.clientX;
yclick=e.clientY;
}
console.log(xclick,yclick);
//document.elementFromPoint(11,54).click();//这是有效的
document.elementFromPoint(e.clientX,e.clientY).click();//这些都不起作用
document.elementFromPoint(xclick,yclick).click();//这些无效
//这些不起作用
setTimeout(函数(){
//document.elementFromPoint(e.clientX,e.clientY).click();
document.elementFromPoint(xclick,yclick).click();
}, 1000);
});

JS-Bin
单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我单击我

注意,您可以使用(编辑器工具栏中的图标看起来像
[]
)在堆栈溢出上创建一个可运行的示例,这样人们就不必转到其他站点。当您执行
操作时,单击()
--坐标为0,0。这是意料之中的。@HereticMonkey真的很酷的功能。我刚刚加了。谢谢@Kosh我是否将坐标传递到click函数中,如.click(e.clientX,e.clientY)?调用
click()
时,传入的事件对象的
clientX
clientY
属性设置为0。您需要构造自己的
Event
对象,并使用
dispatchEvent
触发事件。请参阅注意事项,您可以使用(编辑器工具栏中的图标看起来像
[]
)在堆栈溢出上创建一个可运行的示例,这样人们就不必转到其他站点。当您执行
操作时,单击()
--其坐标为0,0。这是意料之中的。@HereticM