2011-03-26 70 views
1

我有一个表示地图的div网格。我希望能够在任何div上生成点击事件,因为我用鼠标点击。我用下面的代码片段,但没有成功虽然 我得到真正的返回值使用Javascript生成单击事件

var fireOnThis = document.getElementById('someID'); 
var evObj = document.createEvent('MouseEvents'); 
evObj.initEvent('click', true, true); 
fireOnThis.dispatchEvent(evObj); 

我知道是没有产生点击,因为当我点击实际鼠标格被突出显示。

只是一个侧面的问题:是否有可能区分实际鼠标生成的点击和通过javascript本身生成的点击并阻止后面的?(我知道这听起来逻辑错误,但我不知道很多JS,所以也许.. ..)

一些背景:我正在做一个在线游戏网站,我想通过编写一个扩展程序来自动执行例程任务....这部分内容是脚本。

编辑:也许我在看问题的方式是错误的.....也许在实际中,div没有监听点击事件,原因div并没有在实际中被选中,即使事件被触发.....
New Question:给定事件(即,点击一个特定的div)我可以告诉哪个监听器/元素收到该事件吗?

回答

-1

为什么不使用jquery?

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

我认为,有很多方法可以区分鼠标点击和点击触发:触发点击的x/y位置可能不匹配的元素的位置点击。

+0

有没有一种方法可以在JS控制台中使用chrome进行测试? – Jamil 2011-03-26 07:12:47

-1

使用jquery点击事件来触发一个函数。这很容易。

+0

downvote,阅读问题 – YemSalat 2013-08-14 07:58:45

2

我的回答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

的技术信息和代码示例,请here。演示herehere

+0

在演示中,您正在使用分派的值来检查事件是否被触发。正如我最初发布的,我得到了一个真正的回应,但该div没有被选中。这可能是我的事件是如何阻止/过滤的方式? – Jamil 2011-03-26 08:30:56

+0

不知道。你有在DIV上设置的onclick处理程序吗?你可以通过执行一个alert(typeof document.getElementById('someID')。onclick)'来检查。 – 2011-03-26 10:57:51