Bonjour à tous,

suite au super tuto sur une navigation par onglets, j'ai un petit souci sur le comportement par défaut du click.

En effet, quand je clique sur un lien, le navigateur essaie naturellement de suivre l'ancre et mon contenu se déplace. Si j'annule le comportement par défaut avec un e.preventDefault() ou un return false, le contenu ne se déplace plus, mais l'ancre ne change plus dans la barre d'adresse empêchant le système de mémoire au reload de fonctionner.

Quelqu'un aurait-il une autre solution pour bloquer le comportement par défaut tout en gardant la modification dans la barre d'adresse?

Par avance merci beaucoup.

Ken.

5 réponses


Salut,

Essaye de mettre $("document").scrollTop(0);

Je sais pas si ça fonctionnera, j'ai pas testé.

merci pour ta réponse.

j'ai essayé de mettre $(document).scrollTop(0) à la fin de mon écouteur de click, et cela ne fonctionne pas. A mon avis, le comportement par défaut du navigateur, c'est à dire suivre l'ancre, s'opère après l'exécution du js, donc il fait bien le scroll, mais dès la fin du js il suit le lien.

En tout cas merci.
Ken.

Essaye un return false?

déjà essayé, et cela donne le même comportement que e.preventDefault()

Merci!
Je continue à chercher.

J'ai fait ça chez moi et ça fonctionne, à voir si c'est adaptable pour toi :

var loc = $(location).attr("href");
       var anchor = $(this).attr("href");

       $(location).attr("href", loc+anchor);
       $(document).scrollTop(0);

       return false;

A+