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

Sti*_*rik 13 javascript events double-click

对于JS Unit测试,我需要检查双击是否按预期运行.问题是该事件是通过element.addEventListener注册的.由于某种原因,在这种情况下,element.ondblclick()不起作用.HTML:

<input type="image" src="pic.jpg" id="aa"/>
Run Code Online (Sandbox Code Playgroud)

Javasript:

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

小提琴:http://jsfiddle.net/prZKy/

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

任何人都知道如何做到这一点?

Cod*_*gue 20

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

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

请参阅MDN上的"触发内置事件"部分.

是代码的一个小提琴.

  • @Nenotlep因为IE9糟透了,并且无法识别`dblclick`事件.你需要自己设置一个"click"处理程序来设置超时,伪造一次双击.[呸](http://stackoverflow.com/questions/17408714/double-click-using-ie). (5认同)