如何以编程方式激发用addEventListener定义的dblclick事件

How to programmatically fire a dblclick event defined with addEventListener?

本文关键字:定义 addEventListener dblclick 事件 编程 方式激      更新时间:2023-09-26

对于JS单元测试,我需要检查双击是否按预期进行。问题是该事件是通过element.addEventListener注册的。由于某种原因,在本例中,element.ondblclick()不起作用。HTML:

<input type="image" src="pic.jpg" id="aa"/>

Javasript:

document.getElementById('aa').addEventListener("dblclick",function(){alert('aa])});document.getElementById('aa').odblick();

Fiddle:http://jsfiddle.net/prZKy/

如果双击图像,它可以工作,但javascript中的ondblclick()不起作用。

有人知道怎么做吗?

您可以使用dispatchEvent以编程方式触发事件:

var event = new MouseEvent('dblclick', {
    'view': window,
    'bubbles': true,
    'cancelable': true
  });
document.getElementById('aa').dispatchEvent(event);

参见";触发内置事件";在MDN上。

这应该有效:

var doubleClickEvent = document.createEvent('MouseEvents');
doubleClickEvent.initEvent('dblclick', true, true);
e.currentTarget.dispatchEvent(doubleClickEvent); // inside method