Je suis en train de changer le CSS d'une ancre incluse dans un <li>
d'un sous-menu. Voici le code HTML:Même page SubNav sur plusieurs pages site Web
<ul id="nav">
<li class="subnav current"><a href="page1.html">Page1</a>
<ul>
<li><a href="page1.html#section1a">Page 1 Section A</a></li>
<li><a href="page1.html#section1b">Page 1 Section B</a></li>
<li><a href="page1.html#section1c">Page 1 Section C</a></li>
</ul>
</li>
<li class="subnav"><a href="page2.html">Page2</a>
<ul>
<li><a href="page2.html#section2a">Page 2 Section A</a></li>
<li><a href="page2.html#section2b">Page 2 Section B</a></li>
<li><a href="page2.html#section2c">Page 2 Section C</a></li>
</ul>
</li>
<ul>
Chaque section a une largeur 1060px, un flotteur gauche, et toutes les sections sont inclus dans un conteneur div qui débordent est caché. est le script Ici j'ai essayé:
$(document).ready(function() {
var P=($(".section").position().left)*-1
var N=(P/1060)+1
$("#nav li.current ul li:first-child").find("a").css("color","#e53f33");
$("#nav li.current ul li:nth-child(N)").click(function(){
$(this).siblings().find("a").css("color","#777777");
$(this).find("a").css("color","#e53f33");
});
});
Ce script fonctionne très bien quand je reste sur la même page. Mais, c'est-à-dire, lorsque je suis à la page 1 et que je clique sur un lien situé à la page 2, le CSS du premier enfant est changé, même si j'ai cliqué sur un autre enfant. Où est mon erreur?
Vous pouvez voir ce qui se passe ici http://www.theworkingowl.com.
Bonjour, Landons, merci beaucoup pour votre réponse. Ajout ou suppression d'une classe est en effet une bonne solution lorsque vous restez dans la même page. Mais lorsque vous cliquez sur un lien dans une autre page, à savoir la section 2B, l'ancre de lien de cette section ne sera pas ajoutée à une classe (parce que vous n'avez cliqué sur aucun lien dans cette nouvelle page). – Fred
Est-ce du code html statique ou le générez-vous avec des scripts côté serveur? Si c'est statique, essayez d'ajouter ceci: $ (function() {$ ('a [href = "' + window.location.pathname + '"]'). Parents ('li'). AddClass ('current');}) vers le bas de la page ... – landons
Tout est statique html; J'ai essayé ce que vous conseilliez, mais ça ne marche pas, je ne vois pas pourquoi. J'ai aussi essayé ceci: 'var url = window.location.href; if (url.search ("# section1b")> 0) {$ ("# nav li a [href * = # section1b]"). addClass ("current");} 'mais cela ne fonctionne pas trop ... – Fred