来自jquery注册的纯javascript的调用事件
我有一个纯javascript控件,它不依赖于需要引发事件的jquery。该事件需要能够被使用jquery和该控件的客户端页面绑定和使用。当通过纯javascript引发事件时,jquery看不到它。请看这个:来自jquery注册的纯javascript的调用事件,javascript,jquery,events,binding,Javascript,Jquery,Events,Binding,我有一个纯javascript控件,它不依赖于需要引发事件的jquery。该事件需要能够被使用jquery和该控件的客户端页面绑定和使用。当通过纯javascript引发事件时,jquery看不到它。请看这个: $(函数(){ $('#test')。在('input',function(){ 警报(“事件触发”); }); }); //工作 $('#test')。触发器('input'); //不起作用 document.getElementById('test').oninput(); 看起来
$(函数(){
$('#test')。在('input',function(){
警报(“事件触发”);
});
});
//工作
$('#test')。触发器('input');
//不起作用
document.getElementById('test').oninput();
看起来,oninput
不是HTMLElement的函数。只需使用JavaScriptEventTarget.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" />
$(函数(){
$('#test')。在('input',function(){
警报(“事件触发”);
});
});
//工作
$('#test')。触发器('input');
var onInputEvent=新事件(“输入”);
document.getElementById('test').dispatchEvent(onInputEvent);
我
编辑:
确保(谢谢IE)。尝试document.getElementById('test').input();什么是
.oninput()
?如果您创建了一个名为that的函数,请显示代码.document.getElementById('test').input();不适用于oninput事件。但它不适用于任何事件,例如OnChange,这是一个内置事件。它是HTML5规范的一部分。这不是我创建的自定义事件。我看到你更新了小提琴,但它仍然不起作用。你自己拉小提琴看看。没有得到提高。顺便说一句,我不能让它从任何内置事件的工作。即使在“单击”事件中也可以尝试。没用了,我把它拿回去。它与“单击”一起工作。它既不适用于“输入”也不适用于“更改”,所以没有人能回答这个看似简单的问题?
$(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" />