在jQuery中触发keyup事件
我正在创建一个Chrome扩展注入的代码出现了严重问题。本质上,我需要一个keyup事件侦听器来拾取某个键,但我似乎无法获取它 这里是我正在注入的代码(注意,有很多冗余,因为我正在尝试大量的事情来让它触发事件侦听器,一旦我找到可以工作的代码,我将清理它) 调用此函数时,输入元素将被聚焦,并且“keyup元素”将打印到控制台。但是当调用这个函数时,我为keyup事件设置了一个事件侦听器断点,代码永远不会中断 当我只需在键盘上按一个键,同时将注意力集中在输入字段内,并且为keyup事件设置了一个事件侦听器断点时,源jquery.min.js中会出现一个中断,并突出显示“(e)”,这是此函数调用的参数:“f=v.handle=function(e)”。。。请注意,通常只有一个断点发生,但如果我已经调用了我的函数,那么会发生两个断点,因为我正在生成console.log on keyup事件 非常感谢您的帮助,谢谢 使用在jQuery中触发keyup事件,jquery,events,triggers,listener,Jquery,Events,Triggers,Listener,我正在创建一个Chrome扩展注入的代码出现了严重问题。本质上,我需要一个keyup事件侦听器来拾取某个键,但我似乎无法获取它 这里是我正在注入的代码(注意,有很多冗余,因为我正在尝试大量的事情来让它触发事件侦听器,一旦我找到可以工作的代码,我将清理它) 调用此函数时,输入元素将被聚焦,并且“keyup元素”将打印到控制台。但是当调用这个函数时,我为keyup事件设置了一个事件侦听器断点,代码永远不会中断 当我只需在键盘上按一个键,同时将注意力集中在输入字段内,并且为keyup事件设置了一个事件
$.Event()
创建请求的事件,然后使用.trigger()
演示:
代码:
问题是,即使是你给我的代码似乎也被其他键控侦听器接收到。如果转到JSnippet页面,打开dev工具并为keyup事件设置一个事件断点,那么即使e.打印到控制台并在iElement中设置为值,它在运行代码时也不会中断。但是,如果您关注html输入并开始键入,则会触发断点。
function simulateKey(iElement) {
$( iElement ).focus();
var e = jQuery.Event("keyup");
e.which = 37;
e.keyCode = 37;
e.charCode = 0;
$( iElement ).keyup(function () {
console.log("keyup element");
});
$( iElement ).trigger(e);
var f = jQuery.Event("keyup");
f.which = 70;
e.keyCode = 70;
f.ctrlKey = true;
f.shiftKey = true;
$( iElement ).trigger(f);
$ ( document ).trigger(f);
$ ( window ).trigger(f);
}
$(function() {
var $iElement = $('#logit');
$iElement.keyup(function(e) {
console.log(e.which);
$(this).val(e.which);
});
simulateKey($iElement);
});
function simulateKey($iElement) {
var e = $.Event('keyup');
e.which = 65; // Character 'A'
$iElement.trigger(e);
}