javascript - 手动触发窗口对象上的事件

标签 javascript jquery

我正在像这样添加一个监听器:

    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

或者,如果您使用的是普通 JS,请这样做:

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

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

WORKING JSFIDDLE DEMO

关于javascript - 手动触发窗口对象上的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24454583/

相关文章:

javascript - 编辑 ckeditor config.js 没有影响

javascript - 调用包含我的文件的 JS 文件的方法

Javascript 创建对象 - 多种方法,有什么区别吗?

javascript - Rails-jQuery。提交后如何重置表格?

javascript - 如何对多个对象使用一个处理程序?

javascript - 通过 AJAX 加载时启用自动完成

javascript - jQuery Ajax 上传文件 php 即使没有内容也会接收数组

javascript - jQuery 脚本不修改元素的 src

javascript - AngularJS : Routing

javascript - ReactJS onclick 向另一个元素添加或删除类