Korzystając z jQuery, w jaki sposób mogę zasymulować (wyzwolić?) KeyPress po kliknięciu łącza? Na przykład, gdy użytkownik kliknie poniższy link:
<a id="clickforspace" href="#">Click Here</a>
Następnie kliknięcie odsyłacza sprawi, że użytkownik naciśnie „spację” na klawiaturze.
Coś takiego, zakładam:
$("#clickforspace").click(function(e) {
e.preventDefault();
//... Some type of code here to initiate "spacebar" //
});
Jakieś pomysły, jak to osiągnąć?
javascript
jquery
keyboard
Dodinas
źródło
źródło
click
spacją faktycznie chciałeś, aby przeglądarka przewijała się w dół strony? Naciśnięcie spacji na łączu ma zwykle taki sam efekt, jak naciśnięcie klawisza Strona w dół.Odpowiedzi:
Zdarzenie keypress z jQuery jest przeznaczone do tego rodzaju pracy. Możesz wyzwolić zdarzenie, przekazując ciąg „keypress” do .trigger (). Jednak aby być bardziej szczegółowym, możesz w rzeczywistości przekazać obiekt jQuery.Event (określ typ jako „keypress”) i podać dowolne żądane właściwości, takie jak kod klucza będący spacją.
http://docs.jquery.com/Events/trigger#eventdata
Przeczytaj powyższą dokumentację, aby uzyskać więcej informacji.
źródło
Myślę, że właśnie tego szukasz:
var press = jQuery.Event("keypress"); press.ctrlKey = false; press.which = 40; $("whatever").trigger(press);
Od tutaj .
źródło
$("whatever").trigger($.Event("keydown", {keyCode: 40}))
Inna opcja:
$(el).trigger({type: 'keypress', which: 13, keyCode: 13});
http://api.jquery.com/trigger/
źródło
which
służy. TylkokeyCode
działa dla mnie w SAPUI5 (jQuery 2.2.3 na Chrome)Możesz wypróbować tę wtyczkę SendKeys jQuery:
http://bililite.com/blog/2011/01/23/improved-sendkeys/
źródło
bililiteRange
bibliotekę: github.com/dwachss/bililiteRange (w rzeczywistości wtyczka jQuery to tylko cienkie opakowanie wokół tej niesamowitej biblioteki, która stoi samodzielnie ).To działa:
var event = jQuery.Event('keypress'); event.which = 13; event.keyCode = 13; //keycode to trigger this for simulating enter jQuery(this).trigger(event);
źródło