Avec jQuery, comment puis-je simuler (déclencher?) Un KeyPress quand un lien est cliqué? Par exemple, lorsqu'un utilisateur clique sur le lien suivant:
<a id="clickforspace" href="#">Click Here</a>
Ensuite, en cliquant sur le lien, ce serait comme s'ils appuyaient sur la "barre d'espace" de leur clavier.
Quelque chose comme ça, je suppose:
$("#clickforspace").click(function(e) {
e.preventDefault();
//... Some type of code here to initiate "spacebar" //
});
Des idées sur la façon de réaliser ceci?
L'événement de pression de touche de jQuery est destiné à effectuer ce type de travail. Vous pouvez déclencher l'événement en transmettant une chaîne "touche" à .trigger (). Toutefois, pour être plus précis, vous pouvez également transmettre un objet jQuery.Event (spécifiez le type sous la forme "pression au clavier") et indiquez les propriétés de votre choix, telles que le code clé qui constitue la barre d'espacement.
http://docs.jquery.com/Events/trigger#eventdata
Lisez la documentation ci-dessus pour plus de détails.
Je crois que c'est ce que vous cherchez:
var press = jQuery.Event("keypress");
press.ctrlKey = false;
press.which = 40;
$("whatever").trigger(press);
De ici .
Une autre option:
$(el).trigger({type: 'keypress', which: 13, keyCode: 13});
Vous pouvez essayer ce plugin SendKeys jQuery:
http://bililite.com/blog/2011/01/23/improved-sendkeys/
$(element).sendkeys(string)
insère une chaîne au point d'insertion dans une entrée, une zone de texte ou un autre élément avec contenteditable = true. Si le point d'insertion ne se trouve pas dans l'élément, il se souvient de l'endroit où il se trouvait lors du dernier appel de sendkeys (si le point d'insertion ne figurait jamais dans l'élément, il est ajouté à la fin).
Cela marche:
var event = jQuery.Event('keypress');
event.which = 13;
event.keyCode = 13; //keycode to trigger this for simulating enter
jQuery(this).trigger(event);