javascript - 来自 jquery 注册的纯 JavaScript 的调用事件

标签 javascript jquery events binding

我有一个纯 JavaScript 控件,它不依赖于需要引发事件的 jquery。该事件需要能够被使用 jquery 和此控件的客户端页面绑定(bind)和使用。当通过纯 javascript 引发事件时,jquery 看不到它。请看这个:http://jsfiddle.net/w5who6fr/

$(function () {
    $('#test').on('input', function () {
        alert('event triggered');
    });
});

// works
$('#test').trigger('input');

// does not work
document.getElementById('test').oninput();


<input id="test" />

最佳答案

看起来 oninput 不是 HTMLElement 的函数。只需使用 JavaScript EventTarget.dispatchEvent() 函数即可。

$(function () {
    $('#test').on('input', function () {
        alert('event triggered');
    });
});

// works
$('#test').trigger('input');

var onInputEvent = new Event('input');
document.getElementById('test').dispatchEvent(onInputEvent);


<input id="test" />

updated your fiddle .

编辑:

确保fire an event correctly based on browser (感谢 IE)。

关于javascript - 来自 jquery 注册的纯 JavaScript 的调用事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31081099/

相关文章:

javascript - 拖放,防止尴尬的突出显示?

javascript - 如何将 vue-router 数据获取到父模板中?

javascript - 如何通过 .ajax() jQuery 方法获取 Carrierwave 上传到 Amazon S3 的图像的 URL?

php - 动态链接/下拉菜单

php - 使用 PHP include 将文件包含在它自己的包含文件中

javascript - 在javascript中解析json文件,其url扩展名不是.json

javascript - 如何阻止 keydown 事件被卡住?

javascript - 你如何在 jQuery 中使用 $ ('document' ).ready(function()) ?

javascript - 检查用户是否离开页面 js

javascript - 使用 $.getJSON 方法获取 'undefined' 值