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

ffx8fchx  于 2023-02-28  发布在  Java
关注(0)|答案(2)|浏览(138)

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

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

Java脚本:

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

小提琴:http://jsfiddle.net/prZKy/
如果你双击图片,它会工作,但是javascript中的ondblclick()不工作。
有人知道怎么做吗?

juud5qan

juud5qan1#

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

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

参见MDN上的“触发内置事件”一节。

3ks5zfa0

3ks5zfa02#

这应该行得通:

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

相关问题