我有一个代表 map 的 div 网格。当我用鼠标单击时,我希望能够在任何 div 上生成单击事件。我使用了以下代码片段但没有成功 我得到一个真正的返回值:
var fireOnThis = document.getElementById('someID');
var evObj = document.createEvent('MouseEvents');
evObj.initEvent( 'click', true, true );
fireOnThis.dispatchEvent(evObj);
我知道没有生成点击,因为当我用实际鼠标点击时,div 会突出显示。
只是一个附带问题:是否可以区分实际鼠标生成的点击和通过 javascript 本身生成的点击并阻止后面的点击?(我知道这听起来在逻辑上是错误的,但我不太了解 JS,所以也许...... .)
一些背景:我正在为一个在线游戏网站做这件事,我想通过为 chrome 编写一个扩展来自动化日常任务......这部分是内容脚本。
编辑: 也许我看问题的方式不对......也许实际上 div 没有监听点击事件,div 实际上没有被选中的原因即使事件被触发......
新问题:
给定事件(即点击特定的 div),我可以知道哪个监听器/元素接收到该事件吗?
最佳答案
我对 this SO question 的回答介绍了这个功能,可能会有用:
function eventFire(el, etype){
if (el.fireEvent) {
el.fireEvent('on' + etype);
} else {
var evObj = document.createEvent('Events');
evObj.initEvent(etype, true, false);
el.dispatchEvent(evObj);
}
}
关于javascript - 使用 Javascript 在......上生成点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5440832/