我有一段代码来设置我的事件处理程序:
const element = $('#my-element');
const menuToggle = '.menu-toggle';
function assignEventHandlers() {
element.on('click', menuToggle, handleMenuClicked);
}
在JSDOM中,我想触发mocha单元测试的click事件。
我可以在JSDOM中选择元素.menu-toggle
,但是如果我这样触发它,$('.menu-toggle').trigger('click');
就不会调用回调handleMenuClicked
函数。
如何触发此事件?
答案 0 :(得分:0)
您可以使用DOM Api并使用dispatchEvent()
在您的情况下,代码可能如下所示:
var event = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
});
$('.menu-toggle')[0].dispatchEvent(event);
我不确定jQuery是如何实现的,但是我已经开始讨论这个并且看到这个在jsdom上工作