从jquery注册的纯javascript调用事件

时间:2015-06-26 19:52:18

标签: javascript jquery events binding

我有一个纯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" />

1 个答案:

答案 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" />

updated your fiddle

修改

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