我有一个纯javascript控件,它不依赖于需要引发事件的jquery。该事件需要能够被使用jquery和此控件的客户端页面绑定和使用。通过纯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" />
答案 0 :(得分:0)
看起来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" />
修改强>