Ich habe eine Funktion, die einen Benutzer zurück zu einer Sucheingabe am oberen Rand der Seite blättern sollte, und entonces setzen Sie den Fokus darauf (so dass der Cursor blinkt). Aus irgendeinem Grund scheint er den Fokus zuerst auf die Sucheingabe zu setzen. Dies führt zu einem sehr schnellen Sprung/einer rasanten Bewegung der Seite zur Suchleiste, springt dann zurück nach unten und scrollt dann langsam nach oben.
Das Javascript:
function goToSearch(){
$('html,body').animate({scrollTop: $('#search').offset().top},'medium');
$('#search').focus()
}
Das HTML:
<input type="text" id="search" placeholder="search">
...
<a href="#" onclick="goToSearch()">Search</a>
Ich habe versucht, .delay()-Funktionen zu setzen, ohne Erfolg; es scheint immer zuerst .focus() anzuwenden. Warum ist dies geschehen?