我有一个代表地图的div网格。我希望能够在用鼠标单击时在任何div上生成click事件。我使用了以下代码片段但没有成功 我得到一个真正的返回值:
var fireOnThis = document.getElementById('someID');
var evObj = document.createEvent('MouseEvents');
evObj.initEvent( 'click', true, true );
fireOnThis.dispatchEvent(evObj);
我知道没有生成任何点击,因为当我点击实际鼠标时,div会突出显示。
只是一个侧面的问题:是否有可能区分实际鼠标生成的点击和通过javascript本身生成的点击并阻止后来的点击?(我知道它听起来逻辑错误但我不太了解JS所以也许...... 。)
一些背景知识:我正在为一个在线游戏网站做这个,我希望通过编写chrome的扩展来自动执行例行任务....这部分用于内容脚本。
编辑:也许我正在以错误的方式查看问题.....也许在实际中,div不是在侦听click事件,因为div没有在实际中被选中即使事件被解雇.....
New Question:
给定事件(即点击一个特定的div)我可以告诉哪个听众/元素收到了该事件吗?
答案 0 :(得分:3)
我对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);
}
}
关于此主题的
答案 1 :(得分:1)
答案 2 :(得分:-1)
为什么不使用jquery?
$('#someID').click();
我认为可能存在区分鼠标点击和触发点击的方法:触发点击的x / y位置可能与点击的元素的位置不匹配。
答案 3 :(得分:-1)
使用jquery click事件来触发函数。它更容易。