6
votes

Ancre lié à vide

J'ai une ancre qui ne va nulle part mais a un onclick (par exemple ). Ma question concerne l'attribut href . Que dois-je mettre pour la valeur?

Si je dégageez simplement href , l'ancrage n'a pas la décoration appropriée - l'icône du pointeur de la souris ne change pas lorsque la souris est mise dessus.

Si j'utilise href = "#" , la fenêtre fait défiler vers le haut de la page lorsque le lien est cliqué.

Si j'utilise href = "javascript: ..." et mettez la valeur de onclick marche javascript: , la page est laissée et la barre d'adresse contient le JavaScript lorsque le lien est cliqué.

Lorsque je me réfère au comportement du navigateur, je parle de Chrome, que je le teste pour commencer.

Que dois-je mettre pour href lorsque l'ancrage n'est pas un lien réel, mais n'existe que pour avoir le onclick comportement?


0 commentaires

6 Réponses :


12
votes

idéalement em> vous auriez une option pour les personnes atteintes de JavaScript désactivé:

<a href="#" onclick="return do_something();">do something</a>


1 commentaires

Et quelles sont les alternatives?



11
votes

Dans votre gestionnaire ONCLICK, ajoutez ceci à la fin:

return false;


0 commentaires

4
votes
<a href="javascript:void(0);" onclick="...">txt</a>

1 commentaires

J'avais "#" mais il ajoute à l'URL, l'utilisateur ne peut donc pas rafraîchir (F5), donc j'aime votre réponse.



1
votes

Je préfère laisser tomber le HREF (ce n'est pas nécessaire selon W3C Spec) s'il n'est pas utilisé. Pour obtenir le curseur de la souris attendu, utilisez CSS!

<style type="text/css">
a { cursor: pointer; }
</style>
<a onclick="go();">link</a>


1 commentaires

Je ne savais pas que "Href" n'était pas obligatoire; Merci de le pointer (je suis même allé et j'ai vérifié la spécification moi-même! :-))



0
votes
<a href="javascript:;">Foo</a>
Short, descriptive and does not jump like #. 

1 commentaires

Le point-virgule est-il requis?



0
votes

Il y a deux façons de faire cela, si la balise d'identification du lien est link , vous pouvez utiliser href = "#" dans votre HTML, puis Votre JavaScript a: XXX

Cela empêche le comportement normal du navigateur. Ou xxx


0 commentaires