2010-09-10 8 views
3

Dès qu'une page est chargée, je souhaite que le focus accède à un lien particulier, alors appuyer sur Entrée la 'cliquera'.jQuery - Tirez le focus de navigation vers un lien particulier sur le chargement de la page

J'ai essayé

$('ul li a:first').focus();

sans chance, mais je pense que je peux être mal interprété l'utilisation de .focus().

Un conseil apprécié!

: s

+0

Je pense que vous avez parfaitement interprété '.focus()'. Quel navigateur n'a pas fonctionné? – mkoistinen

+0

Peut-être que votre js est exécuté trop tôt? Avez-vous mis cela dans le bloc de document prêt pour jQuery? – mkoistinen

+0

le problème exactement! merci pour toutes les réponses. Je l'avais presque à la fin du document mais évidemment pas assez loin! – Cordial

Répondre

4

Votre code est presque correct. Vous venez de manquer $(document).ready.

Pour corriger, utilisez ceci:

$(document).ready(function(){ 
    $('ul li a:first').focus(); 
}); 

Voir un exemple dans jsfiddle.

Le problème est que lorsque jquery est appelée, la page n'a pas encore ce lien. Avec $(document).ready., vous appelez jquery uniquement lorsque la page est terminée.

2

Ouais, mais il est un peu étrange comment cela fonctionne (et je trouve cela sur les jQuery focus docs, et ne prétend pas comprendre pourquoi cela fonctionne):

$(document).ready(
    function() { 
    $("a:first").attr("tabindex",'-1').focus(); 
    } 
); 

Démo à: jsbin

+0

Cela vient d'être vraiment utile - c'est génial pour donner la priorité à des choses qui n'ont pas l'habitude de se concentrer, comme un div. Merci David! – Cordial