У меня возникают серьезные проблемы с моим кодом, который вводится расширением Chrome, которое я создаю. По сути, мне нужен прослушиватель событий keyup для получения определенного ключа, но я не могу его получить.Запуск события keyup в jQuery
Вот код, который я впрыскиваю (обратите внимание, что есть много избыточности, потому что я пытаюсь много вещей, чтобы заставить его запускать прослушиватель событий, я очищу его, как только найду код, который работает).
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);
}
Когда эта функция вызывается, входной элемент становится сфокусированным, а на клавиатуре печатается «элемент ключа». Но когда эта функция вызывается и у меня есть контрольная точка прослушивателя событий, установленная для событий keyup, код никогда не прерывается.
Когда я просто нажимаю клавишу на моей клавиатуре, когда сфокусирован внутри поля ввода, и у меня есть контрольная точка прослушивателя событий, установленная для событий keyup, есть разрыв в исходном jquery.min.js и "(e)" является выделенный параметр, который является параметром для этого вызова функции: «f = v.handle = function (e)» ... Обратите внимание, что только одна точка останова происходит нормально, но если я уже вызвал свою функцию, тогда 2 точки останова происходят, потому что я генерируя этот console.log для событий keyup.
Любая помощь очень ценится, спасибо!
Проблема заключается в том, что даже код, который вы дадите мне действительно кажется, подхватили другие KeyUp слушателей. Если вы перейдете на страницу JSnippet, откройте инструменты разработчика и установите точку прерывания событий для событий keyup, она не будет прерываться при запуске кода, даже если e.which печатается на консоль и устанавливается как значение в iElement. Но, если вы фокусируете ввод html и начинаете печатать, срабатывает точка останова. –