Ce # doit venir d'un tuto. En effet, c'est une pratique courante de mettre un # à un lien quand on ne sait pas quoi lui donner à manger. Si on ne lui mettait pas du tout de href, il n'aurait plus l'apparence d'un lien (car plus concerné par le sélecteur CSS a:link).
Bien sûr la question qui a été soulevée est : à ce moment-là, est-ce que c'est d'un lien dont on a vraiment besoin ? C'est une autre histoire.
Pour éviter que le # se rajoute à la fin de l'URL quand on clique sur le lien, il faut annuler le clic. Le coup du return false fonctionne bien chez moi, sous Firefox 24 et sous le plus vieux IE que j'ai sous la main, IE8.
<a href="#" onclick="...; return false">clique-moi</a>
Plus propre, utilise un gestionnaire d'évènement (un event listener).
<a href="#" id="monlien">machin</a>
Le JavaScript associé :
1 2 3 4 5
| document.getElementById("monlien").addEventListener("click", function( event ){
event.preventDefault(); // empêche le #
// à la suite, le code pour afficher le détail de la fiche
...
}, false); |
Si tu mets ce code dans le <head>, tu dois t'assurer qu'il ne s'exécute pas trop tôt, sinon le lien n'existera pas encore et ton script ne le trouvera pas. Pour ça, ajoute un gestionnaire d'évènement sur l'évènement "load" de window ou bien sur l'évènement "DOMContentLoaded" de document.
Partager