Bonjour,
J'ai une liste
Un exemple sera surement plus clair :
Ce code fonctionne mais il doit y avoir plus simple. Je ne suis pas spécialement doué en JS.
Je suis preneur d'idées pour simplifier. Merci
Modifié par phiper (18 Feb 2023 - 17:14)
J'ai une liste
<li>
avec sous chaque ligne une sous-liste qui s'affiche en cliquant sur une ligne de la liste principale.Un exemple sera surement plus clair :
<!DOCTYPE html>
<html lang="fr" class="fond_ecran_dev">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="./favicon.ico">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="https://code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css" />
<title>Essai</title>
<style>
a {text-decoration: none;}
li {list-style-type: none;}
.liste-haute {display: block;cursor: pointer;}
.ul-masque {display: none;}
</style>
</head>
<body>
<main class="col-xs-12">
<ul class="liste-haute">
<li>
<a href="#" class="liste" onclick="listeVisible(3, 1)">
<span class="ligne-titre">Liste 1</span>
<ul id="liste-1" class="ul-masque">
<li>Ligne x1</li>
<li>Ligne x2</li>
<li>Ligne x2</li>
</ul>
</a>
</li>
<li>
<a href="#" class="liste" onclick="listeVisible(3, 2)">
<span class="ligne-titre">Liste 2</span>
<ul id="liste-2" class="ul-masque">
<li>ligne Y1</li>
<li>ligne Y2</li>
<li>ligne Y3</li>
<li>ligne Y4</li>
<li>ligne Y5</li>
<li>ligne Y6</li>
</ul>
</a>
</li>
<li>
<a href="#" class="liste" onclick="listeVisible(3, 3)">
<span class="ligne-titre">Liste 3</span>
<ul id="liste-3" class="ul-masque">
<li>ligne Z1</li>
<li>ligne Z2</li>
<li>ligne Z3</li>
<li>ligne Z4</li>
</ul>
</a>
</li>
</ul>
</main>
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="https://code.jquery.com/ui/1.11.1/jquery-ui.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<script>
function listeVisible(total, n) {
for (let index = 1; index <= total; index++) {
document.getElementById('liste-' + index).style.display = "none";
}
var idnom = 'liste-' + n;
document.getElementById(idnom).style.display = "block";
};
</script>
</body></html>
Ce code fonctionne mais il doit y avoir plus simple. Je ne suis pas spécialement doué en JS.
Je suis preneur d'idées pour simplifier. Merci
Modifié par phiper (18 Feb 2023 - 17:14)