Comment mettre en œuvre l'affichage de l'ancre nommée demandé en utilisant JQuery / JavaScript / CSS
-
22-08-2019 - |
Question
La page a un conteneur div qui contient plusieurs divs de contenu. Chaque div de contenu a une ancre nommée. Un seul des contenu divs est affiché à un moment:
Exemple:
<style>
.lurk { display: none; }
</style>
<div class="container">
<div id="c1">
<a name="#c1">One</a> is the loneliest number.
</div>
<div id="c2" class="lurk">
<a name="#c2">Two</a> is company.
</div>
<div id="c3" class="lurk">
<a name="#c3">Three</a> is a crowd.
</div>
</div>
<script>
// ... something that adds and removes the lurk class from the content divs
</script>
Le comportement souhaité est que si quelqu'un demande la page en utilisant une ancre nommée valable dans l'URL, le JavaScript / JQuery verra et définir les différentes propriétés d'affichage de manière appropriée afin que le contenu correspondant à l'ancre nommée est visible.
- L'URL demandant à la disposition JQuery?
- vérifie named ancres dans l'URL habituellement fait au début de $ (document) .ready? ()
- Est ce difficile à obtenir dans un droit croix multidirectionnelle navigateur?
- Y at-il une routine de bibliothèque pour extraire l'ancre à partir d'une URL, ou que tout le monde roule leur propre expression régulière?
La solution
Vous pouvez utiliser location.hash
pour récupérer l'ancre à partir de l'URL. Cela fonctionne sur les navigateurs et travaillera en $(document).ready
.
Par exemple:
$("div.container > div").removeClass("lurk");
if (location.hash)
$("#" + location.hash).addClass("lurk");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow