У меня есть div, который работает как кнопка. Как только кнопка нажата, я хочу, чтобы она смоделировала нажатие клавиши. В другом месте Stackoverflow люди предложили использовать jQuery.Event("keydown");
, но в предложениях все используют .trigger()
, привязанные к кнопке, а не .click
. Итак, мой пример кода выглядит следующим образом:Виртуальная клавиатура с JQuery
var press = jQuery.Event("keydown");
press.which = 69; // # The 'e' key code value
press.keyCode = 69;
$('#btn').click(function() {
$('#testInput').focus();
$(this).trigger(press);
console.info(press);
});
Я создал фиктивный пример в JSFiddle: http://jsfiddle.net/ruzel/WsAbS/
В конце концов, а не иметь заполнить нажатие элемента формы, я просто хочу зарегистрируйте событие как ключевое слово для документа, чтобы игра MelonJS могла иметь его.
UPDATE: По соображениям безопасности запуск браузера с помощью чего-либо, кроме клавиатуры, может быть проигнорирован браузером. Для обновления ввода текста, это очень хороший Jquery плагин будет делать трюк: http://bililite.com/blog/2011/01/23/improved-sendkeys/
Как для тех, кто приходит сюда в поисках решения в случае MelonJS, то лучше использовать объект me.input MelonJS, как и так:
$('#btn').mousedown(function() {
me.input.triggerKeyEvent(me.input.KEY.E, true);
});
$('#btn').mouseup(function() {
me.input.triggerKeyEvent(me.input.KEY.E, false);
});
Так в чем ваш вопрос? Если вы хотите вызвать его на 'document', просто используйте это вместо' this'. '$ (document) .trigger (нажать);' – Ian
Я не уверен, что вам нужно для MelonJS, но я думаю, что вы ищете '$ ('# testInput'). trigger (press);' вместо ' $ (это) .trigger (пресса); '. На самом деле это не будет вставлять текст в текстовое поле, но он будет имитировать код 69, который будет нажат в этом текстовом поле. И он автоматически перейдет в «документ» (характер '.trigger') - http://jsfiddle.net/WsAbS/5/ – Ian
Спасибо, Ян. Да, как я уже сказал в моем обновлении выше, похоже, что вы не можете отправить нажатие на ввод, который не исходит из фактических причин безопасности клавиатуры. Что касается MelonJS, я обратился к этому в обновлении выше. – russellmania