11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous Smiley smile

J'aimerais donc changer la couleur d'un item de menu en fonction de l'ancre nommée passé dans l'url de la page: exemple *http://www.toto.fr#ancrecontact

Le problème se trouve sur mon site
En cliquant ici :http://www.r-gaborit.fr/index.php#ancrecontact vous verrez que le menu reste à 'HOME'.

Auriez-vous une idée s'il vous plait pour changer cette couleur et la mettre sur 'CONTACT' ?

En vous remerkiant.
Modifié par PetarouxRay (07 Oct 2011 - 08:09)
personne ?? Smiley decu

Je cherche mes je trouve pas

[#darkred]<div id="header_menu" role="navigation">
	<ul>
		<li> <a href="#top" class="mactive">home</a> </li>
		<li> <a href="#ancrefolio">portfolio</a> </l
		<li> <a href="#ancrepropos">a propos</a> </li>
		<li> <a href="#ancrecontact">contact</a> </li>
	</ul>
</div>[/#] 




	<script type="text/javascript">
		$(document).ready(function(){
			$("#header_menu ul li a").click( function(e) {
				e.preventDefault();
				$("#header_menu ul li a").each( function() {
					$(this).removeClass("mactive");
				});
				$(this).addClass("mactive");
			});
		});
	</script> 

Modifié par PetarouxRay (07 Oct 2011 - 08:15)
Et bien j'ai trouvé Smiley smile

Merci a ceux qui m'ont lu quand même ^^

la réponse :



/* recuperation de l'index du signe # */
$index = document.location.href.indexOf("#");
/* extraction du nom de l'ancre sans le # */
$pathname = document.location.href.substring($index+1);
/* test si il y a bien un nom d'ancre  (sinon $index=-1) */
if ($index >= 0) { 
	/* on enleve la couleur sur l'ancien menu actif */
	$("#header_menu ul li a").each( function() {
		$(this).removeClass("mactive");
	});
	/* on pose la couleur sur l'item menu ayant l'id   <a href="" id="flagcontact"></a> */
	$("#flagcontact").addClass("mactive");
}