2011-08-22 7 views
0

Je veux créer une barre de menu qui conservera les informations dont le menu a été cliqué en changeant la couleur d'arrière-plan de ce menu.Comment détecter si un lien a été cliqué, même si la page est redirigé

<div class="dashboard_navigation"> 
    {% for header in headers %} 
      <div class="navigation_header" name="Home"> 
       <a id='a' href="{{ header.url }}">{{ header.name }}</a> 

       <div class="navigation_subheader"> 

         {% for subheader in subheaders %} 
          {% if header.id == subheader.parent.id %} 
           <div> 
            <a href="{{ subheader.url }}" >{{ subheader.name }}</a> 
           </div> 
          {% endif %} 
         {% endfor %} 
       </div> 
      </div>  
    {% endfor %} 

Le script que je utilise est comme suit

$(".navigation_header").live('click', function() 
    {   
     $(this).children('a').css("background-color","red"); 

    }); 

Qu'est-ce que je fais mal? L'information fournie dans la question est-elle suffisante ou devrais-je ajouter quelque chose?

+0

si je suis arrivé, pas parce que je clique sur un lien, mais parce que je suis allé à l'URL directement? Le serveur doit générer et mettre en surbrillance la navigation, en fonction de la page en cours de l'utilisateur. Ce n'est pas vraiment un travail pour JavaScript. – deceze

+0

' « dois-je ajouter quelque chose »' - Oui, si vous montrez tellement de code serveur, balise la question de façon appropriée. J'ai ajouté l'étiquette ASP dans ce cas, est-ce correct? –

Répondre

0

Lorsque vous cliquez sur le lien la page va être redirigée même si vous avez joint un gestionnaire d'événements de clic à son parent div il ne va pas travailler la page sera redirigé.

Vous pouvez stocker quel lien est de cliquer dans une cookie pour la session utilisateur en cours. Lisez la valeur du cookie lors du chargement de la page et définissez la couleur d'arrière-plan en conséquence.

Vous pouvez jeter un oeil à plugin cookie jquery ici http://plugins.jquery.com/project/Cookie

0

Chaque div.navigation_header a un nom unique, comme "Accueil", non? (S'ils ne pas puis leur donner un!)

Votre serveur doit également savoir quelle page correspond à chaque nom. Donc, il va écrire un style juste pour cette page.

Par exemple, pour la Accueil la page, il écrirait:

div.navigation_header[name=Home] a { 
    background-color: red; 
} 

Sinon, vous devez utiliser des cookies ou des paramètres d'URL.

Questions connexes