8
votes

Arrêter le comportement de hashtag par défaut avec jQuery

J'utilise le code suivant pour ajouter un hashtag à la fin d'une URL. De cette façon, quelqu'un peut copier cette URL et les ramener à cette page, avec certaines divs visibles. XXX

Dans cet exemple, j'ai un divisé appelé "Live", qui stradurait quand un lien est cliqué et '#live' ajouté à l'URL. Ensuite, j'ai un code qui vérifie les balises de hachage lorsque la page est chargée pour afficher les divs appropriés.

Mon problème est, comment puis-je empêcher le navigateur de sauter au "Live 'div une fois que cela s'appelle? Je ne veux pas que la page fait défiler vers la Div, je veux juste qu'il s'ouvrit et que le hashtag ajouté à une personne puisse la copier et revenir à cette page avec cette division division.

Tous les conseils?

Merci!


1 commentaires

Accrochez-vous, voulez-vous dire que lorsque la liaison ci-dessus est cliquée ou lorsque la page se charge d'abord avec le SACH présent dans l'URL?


3 Réponses :


8
votes

Cela dépend. Si vous souhaitez l'empêcher de l'empêcher lorsque l'ancre est cliquée, utilisez ceci:

$("a.live").click(function(e) {
    e.preventDefault(); // Prevents browsers default action
    window.location.hash = 'live'; 
    $("#live").slideDown();
});


0 commentaires

8
votes

Essayez ceci:

$("a.live").click(function() {
    window.location.hash = 'live'; 
    $("#live").slideDown();
    return false; // this will prevent default action
});


0 commentaires

2
votes

Je suppose que vous avez du code dans le document prêt à l'emploi que vous utilisez pour ouvrir le DIV comme vous le dites? Si tel est le cas, je vous suggérerais d'ajouter un préfixe à l'ID dans le hachage (comme #_live) de sorte que l'ID ne se trouve pas dans le document et empêche donc le navigateur de faire défiler automatiquement ce élément, puis de modifier votre code pour supprimer. le préfixe lorsque vous le ramenez.

Je suggère ce "hack" parce que je ne pense pas que vous puissiez empêcher que le comportement du navigateur utilisant JavaScript, du moins sûrement pas fiable pour une solution croisée croisée.


0 commentaires