使用Javascript在.......上生成点击事件

时间:2011-03-26 06:54:55

标签: javascript events

我有一个代表地图的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)我可以告诉哪个听众/元素收到了该事件吗?

4 个答案:

答案 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);
    }
}
关于此主题的

Here's another SO question

答案 1 :(得分:1)

技术信息和代码示例可用here。演示herehere

答案 2 :(得分:-1)

为什么不使用jquery?

$('#someID').click();

我认为可能存在区分鼠标点击和触发点击的方法:触发点击的x / y位置可能与点击的元素的位置不匹配。

答案 3 :(得分:-1)

使用jquery click事件来触发函数。它更容易。