Comment montrer la division cachée en utilisant url

Je fais une petite page qui comporte 3 sections. Alors que 1 section montre que les autres sont cachés. Lorsque la page charge la section de bienvenue s'affiche, tandis que les autres sections sont configurées pour être affichées: aucune. En cliquant sur le bouton de menu pour les autres pages, vous trouverez la section désirée et masquez toutes les autres; J'utilise jQuery pour faire ça. Malheureusement, je rencontre le problème que je ne peux pas faire une url pour accéder à la section spécifique. Habituellement, pour aller à une section d'une page qui n'est pas cachée, je voudrais simplement créer une ancre et le nom est XXX, puis ajouter #XXX à la fin de l'URL de cette page, mais faire cela sur une division cachée ne fait pas Le spec div.

Aucune suggestion?

Html:

<div id="menu"> <p><a href="#" id="menu-home">Home</a></p> <p><a href="#" id="menu-page1">Page 1</a></p> <p><a href="#" id="menu-page2">Page 2</a></p> </div> <div id="home"> <h1>Welcome!</h1> <p>This is where all the home page stuff will go</p> </div> <div id="page1"> <h1>Page 1</h1> <p>Page 1 content here</p> </div> <div id="page2"> <h1>Page 2</h1> <p>Page 2 content here</p> </div> 

Css:

 #page1 { display:none; } #page2 { display:none; } 

Js:

 $(document).ready(function(){ $('#menu-home).click(function(){ $('#home').show('fast'); $('#page1').hide('fast'); $('#page2').hide('fast'); }); $('#menu-page1).click(function(){ $('#page1').show('fast'); $('#home').hide('fast'); $('#page2').hide('fast'); }); $('#menu-page2).click(function(){ $('#page2').show('fast'); $('#home').hide('fast'); $('#page1').hide('fast'); }); }); 

Vous pouvez utiliser window.location.hash * qui renverra la partie correspondante de l'url.

Pour que cela fonctionne, vous devez donner à vos marqueurs <a> une bonne valeur de hachage:

 <p><a href="#page1" id="menu-page1">Page 1</a></p> <p><a href="#page2" id="menu-page2">Page 2</a></p> 

Et vérifiez la chaîne mentionnée si elle correspond à une page donnée:

 $(document).ready(function(){ //binding click events to elements var locationHash = window.location.hash.substring(1); if(locationHash == 'page1'){ $('#menu-page1').trigger('click'); }else if(locationHash == 'page2'){ $('#menu-page2').trigger('click'); } }); 

Vous voyez que j'ai utilisé les événements de clic pour une solution rapide et rapide, ainsi que la location.hash sous- location.hash pour éliminer le # .
Bien sûr, cela est ouvert pour l'amélioration .eg pas cacher page1 ou page2 en tout sur la page charger si un hachage donné est trouvé.

* Voir le document lié pour l' emplacement en tant que window.location est un objet Local qui détient une propriété hash

Vous aurez besoin d'un javascript, que, lors de la chargement de la page, vérifie l'URL d'une ancre comme #menu-xy et rend visible la div correspondante.