11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je suis en train de faire un menu (je ne peux vous montrer l'url pour raison professionnelle) et j'ai un souci de JS.

Je souhaiterai la chose suivante :

- Quand on clique sur mon <a> une box s'ouvre avec effet expose jquery (ça c'est OK).

- En cliquant sur ce fameux <a> je souhaiterai que cela ajoute une classe à mon li (parent de mon <a>) afin d'afficher un background différent sur mon bouton. (ca c'est OK)

- C'est maintenant que ça se complique pour moi, quand je clique n'importe où dans la page ma box expose disparait, ce qui est normal, mais j'aimerai qu'en même temps cela retire la classe du li.

J'espère que j'ai été assez claire dans mes explications.

Voici le code que j'ai utilisé en JS


<script type="text/javascript">
	$(document).ready(function()
		{
			$('a[rel]').overlay({ mask: { color: '#7c7c7c' } });
		}
	); 
</script> 

<script type="text/javascript">
	var  content = document.querySelector("#so_navigation > ul > li");
	
	// Toggle show/hide classes on test content
	content.addEventListener("click", function()
	{
	  content.className = "current";
	}, false);

</script> 


Je vous remercie par avance de l'aide que vous pourrez m'apporter.

Amicalement,
Aurélie.
Modifié par LiliBaby13 (11 Feb 2013 - 10:02)
Salut,
Pour supprimer la classs c'est :
En jquery

$(element).removeClass('Ta classs');

Sinon en javascript , je vois :

content.className = '';

Ou si tu as plusieurs class et que tu veux supprimer qu'une seul :

function hasClass(ele,cls) {
    return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

function removeClass(ele,cls) {
        if (hasClass(ele,cls)) {
            var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
            ele.className=ele.className.replace(reg,' ');
        }
    }


++++++
Bonjour

Merci beaucoup pour votre aide.
J'ai réussi à mettre en place et avoir l'effet souhaité ce matin Smiley smile

Amicalement,
Aurélie