Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在……上生成单击事件。。。。。。。使用Javascript_Javascript_Events - Fatal编程技术网

在……上生成单击事件。。。。。。。使用Javascript

在……上生成单击事件。。。。。。。使用Javascript,javascript,events,Javascript,Events,我有一个代表地图的div网格。我希望能够在我用鼠标单击任何div时生成click事件。我使用了下面的代码片段,但没有成功 我得到了一个真实的返回值: 我知道没有生成单击,因为当我使用实际鼠标单击时,div会高亮显示 只是一个附带的问题:是否有可能区分鼠标实际生成的点击和通过javascript本身生成的点击,并阻止后面的点击?(我知道这听起来逻辑错误,但我不太了解JS,所以可能……) 一些背景:我正在为一个在线游戏网站做这件事,我想通过为chrome编写一个扩展来自动化日常任务……这部分是内容脚

我有一个代表地图的div网格。我希望能够在我用鼠标单击任何div时生成click事件。我使用了下面的代码片段,但没有成功 我得到了一个真实的返回值:

我知道没有生成单击,因为当我使用实际鼠标单击时,div会高亮显示

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

一些背景:我正在为一个在线游戏网站做这件事,我想通过为chrome编写一个扩展来自动化日常任务……这部分是内容脚本

编辑:也许我把问题看错了。。。。。可能在实际情况下,div没有侦听click事件,因此即使在触发事件时,实际上也没有选择div….
新问题:
给定事件(即,单击特定的div),我可以告诉哪个侦听器/元素接收到该事件吗?

为什么不使用jquery

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

我确实认为可能有办法区分鼠标点击和触发点击:触发点击的x/y位置可能与被点击元素的位置不匹配

使用jquery单击事件触发函数。更简单。

我的回答提供了这个函数,它可能很有用:

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);
    }
}

关于此主题,可提供技术信息和代码示例。演示和。

是否有一种方法可以在chrome自带的JS控制台中对其进行测试?在演示中,您使用dispatched的值来检查事件是否触发。正如我最初发布的,我得到了一个真实的回复,但是div没有被选中。我的活动是否会在途中被屏蔽/过滤?不知道。在DIV上是否设置了onclick处理程序?您可以通过执行
警报(typeof document.getElementById('someID').onclick)
来检查这一点。
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);
    }
}