对于JS Unit测试,我需要检查双击是否按预期运行。问题是该事件是通过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').ondblclick();
小提琴:http://jsfiddle.net/prZKy/
如果双击图像,它可以正常工作,但javascript中的ondblclick()不起作用。
任何人都知道如何做到这一点?
答案 0 :(得分:19)
您可以使用dispatchEvent
以编程方式触发事件:
var event = new MouseEvent('dblclick', {
'view': window,
'bubbles': true,
'cancelable': true
});
document.getElementById('aa').dispatchEvent(event);
请参阅MDN上的“触发内置事件”部分。
Here是行动代码的缩影。
答案 1 :(得分:1)
这应该有效:
var doubleClickEvent = document.createEvent('MouseEvents');
doubleClickEvent.initEvent('dblclick', true, true);
e.currentTarget.dispatchEvent(doubleClickEvent); // inside method