我正在添加一个监听器,如下所示:

    window.addEventListener('native.showkeyboard', function (e) {
        ...
        ...
    });

我正在为此编写单元测试,因此我想触发事件。我正在做:
    window.trigger('native.showkeyboard');

但是我最终在该行出现了一个错误,说:
    undefined is not a function

如何手动触发此事件?

编辑

我也尝试过:
  $(window).trigger('native.showkeyboard');

但该处理程序未与此一起运行,因为它未在jquery中注册...

最佳答案

如果您通过jQuery触发事件,那么该事件应该已经通过jQuery附加了-请参阅@fredericHamidi的评论。

$(window).on('native.showkeyboard', function (e) {
    .........
});

$(window).trigger('native.showkeyboard');

WORKING JSFIDDLE DEMO

或者,如果您使用纯 Vanilla JS,请按照以下方式进行操作:
window.addEventListener('native.showkeyboard', function (e) {
    ........
});

window.dispatchEvent( new Event('native.showkeyboard') );

WORKING JSFIDDLE DEMO

07-24 18:00