Simular Keypress Com jQuery

Usando jQuery, como posso simular (triggersr?) Um KeyPress quando um link é clicado? Por exemplo, quando um usuário clica no seguinte link:

Click Here 

Então, clicando no link, seria como se eles pressionassem a “barra de espaço” no teclado.

Algo como isto, estou assumindo:

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

Alguma idéia de como conseguir isso?

O evento de pressionamento de tecla do jQuery destina-se a fazer esse tipo de trabalho. Você pode acionar o evento passando uma string “keypress” para .trigger (). No entanto, para ser mais específico, você pode realmente passar um object jQuery.Event (especifique o tipo como “keypress”) e fornecer as propriedades desejadas, como o keycode, que é a barra de espaço.

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

Leia a documentação acima para mais detalhes.

Eu acredito que isso é o que você está procurando:

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

Daqui.

Outra opção:

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

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

Você poderia tentar este plugin jQuery SendKeys:

http://bililite.com/blog/2011/01/23/improved-sendkeys/

$(element).sendkeys(string) insere uma string no ponto de inserção em uma input, textarea ou outro elemento com contenteditable = true. Se o ponto de inserção não estiver atualmente no elemento, ele se lembrará de onde o ponto de inserção estava quando as teclas de envio foram chamadas pela última vez (se o ponto de inserção nunca estiver no elemento, ele será anexado ao final).

Isso funciona:

 var event = jQuery.Event('keypress'); event.which = 13; event.keyCode = 13; //keycode to trigger this for simulating enter jQuery(this).trigger(event); 

Se você quiser simular as ações do navegador como “desfazer” ou “refazer”, tente isso:

 function doUndo(){ document.execCommand('undo', false, null); } function doRedo(){ document.execCommand('redo', false, null); }