我有一个纯 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" />
编辑:
确保fire an event correctly based on browser (感谢 IE)。
关于javascript - 来自 jquery 注册的纯 JavaScript 的调用事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31081099/