11485 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai un bloc que je peux déplier pour dévoiler un contenu caché. En recliquant dessus, celui-ci peut alors se rétracter.

Le bout de code qui gère ça est le suivant :
function ouvrirFermerSpoiler(bouton) {
			var divContenu = bouton.nextSibling;
			if (divContenu.nodeType == 3) divContenu = divContenu.nextSibling;
			if (divContenu.style.display == 'flex') {
				divContenu.style.display = 'none';
			} else {
				divContenu.style.display = 'flex';
			}
		}


Le problème est le suivant : lorsque je clique sur l'un des boutons qu'il contient, la page se réactualise et le bloc se referme automatiquement. Je souhaiterais qu'il reste ouvert malgré tout, tout en étant fermé arrivé une première fois sur la page.

Le html est le suivant (le reste des balises sont des balises html, il s'agit d'un test) :

<div class="container">
		<div class="menuDep">
				<h2 class="title">Menu dépliant</h2>
				<input type="button" class="boutonDepliant" value="+" onclick="ouvrirFermerSpoiler(this);" />
                </div>
</div>


Merci d'avance pour votre réponse !
Salut, tu peux essayer ceci :


const button = document.getElementsByClassName('.button');
for(let i = 0; i < button.length; i++) {
    button[i].onclick = function(e) {
       e.preventDefault;
    }
 }

Modifié par vzytoi (03 Nov 2020 - 12:27)
Malheureusement il ne gère pas GetElementByClassName Smiley ohwell
Je suis dans un aspx entre deux balises scrpit
parsimonhi a écrit :
Bonjour,

C'est getElementsByClassName (y a un s à element).

Amicalement,


Merci de ta remarque ... J'ai éditer ma réponse