Имитация нажатия клавиши с помощью jQuery
используя jQuery, как я могу имитировать (триггер?) нажатие клавиши при нажатии на ссылку? Например, когда пользователь нажимает на следующую ссылку:
<a id="clickforspace" href="#">Click Here</a>
затем, нажав на ссылку, как если бы они нажали на "пробел" на клавиатуре.
что-то вроде этого, я предполагаю, что:
$("#clickforspace").click(function(e) {
e.preventDefault();
//... Some type of code here to initiate "spacebar" //
});
есть идеи, как этого добиться?
6 ответов:
событие нажатия клавиши из jQuery предназначено для выполнения такой работы. Вы можете вызвать событие, передав строку "нажатие клавиши".триггер.)( Однако, чтобы быть более конкретным, вы можете фактически передать jQuery.Объект события (укажите тип как "нажатие клавиши"), а также и предоставить любые свойства, которые вы хотите, такие как код ключа, являющийся пробел.
http://docs.jquery.com/Events/trigger#eventdata
прочитайте вышеуказанную документацию для получения более подробной информации.
Я считаю, что это то, что вы ищете:
var press = jQuery.Event("keypress"); press.ctrlKey = false; press.which = 40; $("whatever").trigger(press);С здесь.
вы можете попробовать этот плагин SendKeys jQuery:
http://bililite.com/blog/2011/01/23/improved-sendkeys/
$(element).sendkeys(string)вставляет строку в точку вставки в вход, текстовая область или другой элемент с contenteditable=true. Если точка вставки в данный момент не находится в элементе, она запоминает, где точка вставки была при последнем вызове sendkeys (если точка вставки никогда не была в элементе, она присоединяется к конец.)
это работает:
var event = jQuery.Event('keypress'); event.which = 13; event.keyCode = 13; //keycode to trigger this for simulating enter jQuery(this).trigger(event);
Если вы хотите эмулировать действия браузера Как "отменить" или "повторить", вы должны попробовать это:
function doUndo(){ document.execCommand('undo', false, null); } function doRedo(){ document.execCommand('redo', false, null); }
Comments