如何以编程方式激发用addEventListener定义的dblclick事件
How to programmatically fire a dblclick event defined with addEventListener?
对于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
相关文章:
- 用嵌套函数和默认函数定义函数
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 控制台返回var不是't定义,但它是
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 如何检查管道中未定义的项目
- TypeError:无法读取属性'推'未定义的JavaScript
- jQuery自定义验证比较多个输入的序列
- 查看JS对象的所有键,甚至是getter定义的键
- fetch() 函数未在 Ubuntu Chromium 浏览器上定义
- $window.ga在AngularJS事件中未定义
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 未捕获的TypeError无法读取未定义的属性socialsharing
- WebDriverException:tinyMCE未在selenium Web driver java中定义
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 定义完全独立的样式信息
- 如何在选项卡上定义属性'的主窗口对象
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的