Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自jquery注册的纯javascript的调用事件_Javascript_Jquery_Events_Binding - Fatal编程技术网

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

来自jquery注册的纯javascript的调用事件,javascript,jquery,events,binding,Javascript,Jquery,Events,Binding,我有一个纯javascript控件,它不依赖于需要引发事件的jquery。该事件需要能够被使用jquery和该控件的客户端页面绑定和使用。当通过纯javascript引发事件时,jquery看不到它。请看这个: $(函数(){ $('#test')。在('input',function(){ 警报(“事件触发”); }); }); //工作 $('#test')。触发器('input'); //不起作用 document.getElementById('test').oninput(); 看起来

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

$(函数(){
$('#test')。在('input',function(){
警报(“事件触发”);
});
});
//工作
$('#test')。触发器('input');
//不起作用
document.getElementById('test').oninput();

看起来,
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" />
$(函数(){
$('#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" />