Имитация нажатия клавиши с помощью jQuery



используя jQuery, как я могу имитировать (триггер?) нажатие клавиши при нажатии на ссылку? Например, когда пользователь нажимает на следующую ссылку:



<a id="clickforspace" href="#">Click Here</a>


затем, нажав на ссылку, как если бы они нажали на "пробел" на клавиатуре.



что-то вроде этого, я предполагаю, что:



$("#clickforspace").click(function(e) { 
e.preventDefault();
//... Some type of code here to initiate "spacebar" //
});


есть идеи, как этого добиться?

1475   6  

6 ответов:

событие нажатия клавиши из jQuery предназначено для выполнения такой работы. Вы можете вызвать событие, передав строку "нажатие клавиши".триггер.)( Однако, чтобы быть более конкретным, вы можете фактически передать jQuery.Объект события (укажите тип как "нажатие клавиши"), а также и предоставить любые свойства, которые вы хотите, такие как код ключа, являющийся пробел.

http://docs.jquery.com/Events/trigger#eventdata

прочитайте вышеуказанную документацию для получения более подробной информации.

Я считаю, что это то, что вы ищете:

var press = jQuery.Event("keypress");
press.ctrlKey = false;
press.which = 40;
$("whatever").trigger(press);

С здесь.

другой вариант:

$(el).trigger({type: 'keypress', which: 13, keyCode: 13});

http://api.jquery.com/trigger/

вы можете попробовать этот плагин 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

    Ничего не найдено.