Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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
Javascript 如何使用指定的keycode触发keyup之类的事件_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何使用指定的keycode触发keyup之类的事件

Javascript 如何使用指定的keycode触发keyup之类的事件,javascript,jquery,html,Javascript,Jquery,Html,我试图在jasmine中进行测试,需要用指定的keycode触发一个keyup事件(在我的例子中输入)。当我尝试这个的时候 document.getElementById('title').addEventListener('keyup', function(e){ console.log(e.keyCode); }); var e = $.Event("keyup", {keyCode: 64}); $('title').trigger(e); $('title').on('keyu

我试图在jasmine中进行测试,需要用指定的keycode触发一个keyup事件(在我的例子中输入)。当我尝试这个的时候

document.getElementById('title').addEventListener('keyup', function(e){
    console.log(e.keyCode);
});
var e = $.Event("keyup", {keyCode: 64});
$('title').trigger(e);
$('title').on('keyup', function(e){
     e.currentTarget.style.color = 'red';
     console.log(e.keyCode);
});

var e = $.Event("keyup", {keyCode: 64});
$('title').trigger(e);
该事件未被触发,但当我手动设置焦点并按下时,会触发该事件

但是当我尝试这个的时候

document.getElementById('title').addEventListener('keyup', function(e){
    console.log(e.keyCode);
});
var e = $.Event("keyup", {keyCode: 64});
$('title').trigger(e);
$('title').on('keyup', function(e){
     e.currentTarget.style.color = 'red';
     console.log(e.keyCode);
});

var e = $.Event("keyup", {keyCode: 64});
$('title').trigger(e);

它正在被触发。我不明白为什么一个不工作,另一个不工作如果使用addEventListener不使用触发器,请使用dispatchEvent:

document.getElementById("q").dispatchEvent(new KeyboardEvent('keyup', { 'keyCode': 65 }));
.trigger()仅在使用jquery附加事件处理程序时有效。它在本机事件侦听器上不起作用

在第二种情况下,您附加了$(..),因此jquery将触发该事件。 本机事件侦听器在此处不起作用。您可以使用dispatchEvent

var event = new KeyboardEvent("keyup", {keyCode: 64});

document.getElementById('title').addEventListener('keyup', function(e){
    console.log(e.keyCode);
});

document.getElementById('title').dispatchEvent(event);
查看此处了解更多信息
.trigger()

文档的第一行:“.on()或其快捷方式方法所附加的任何事件处理程序在相应事件发生时都会被触发。”缺少
事件
参数:
…('keyup',函数(e){
我不明白,你能澄清第一行应该是:
文档。getElementById('title')).addEventListener('keyup',函数(e){
再次:
.trigger()
仅触发使用jQuery函数添加的事件侦听器。它不会触发使用
addEventListener添加的侦听器
其日志取消定义立即重试。