Forum de discussion
Forum « Programmation Javascript » (archives)
Re: Liste imbriquée à la manière des Trucsweb
Envoyé: 5 décembre 2003, 10h51 par Oznog
Je vois, le menu récupéré sur Dynamic Drive. Le fameux "Contractible Headers Script " (http://www.dynamicdrive.com/dynamicindex1/navigate2.htm) c'est le "&{head}" qui t'as vendu!
Effectivement il ne fonctionne qu'avec 2 niveaux. Pas facile car "this" est la liste au complet... C'est d'ailleurs une méthode très limité, dès que le "this" est embourbé dans une page Web Netscape/Mozilla ne le saisissent plus!
Enfin, j'ai beaucoup testé sans succès avec la méthode rencontrée partout soit avec le "style.display='none'". Ce n'était même pas la première fois que je m'y attaquais. Après un avant-midi j'ai passé à une méthode plus "portable" avec le "innerHTML". Voilà le code, exclusif il va de soit... (incompatible Opera!)
<script type="text/javascript" language="javascript">
<!--
var ns4=document.layers
var ie4=document.all
var ns6=document.getElementById&&!document.all
var txt1 = '<ul><li>niveau 1_0</li><li onclick="twChangeObjet(\'sm2\',txt2);">niveau 1_1</li><div id="sm2"></div></ul>';
var txt2 = '<ul><li onclick="twChangeObjet(\'sm3\',txt3);">niveau 2_0</li><div id="sm3"></div><li>niveau 2_1</li></ul>'
var txt3 = '<ul><li onclick="twChangeObjet(\'sm4\',txt4);">niveau 3_0</li><div id="sm4"></div><li>niveau 3_1</li><li>niveau 3_2</li></ul>'
var txt4 = '<ul><li>niveau 4_0</li></ul>'
function twChangeObjet(nObjet,nContenu) {
// Laisser cette remarque s.v.p.
// Script gratuit des Trucsweb.com
if (ns6) {
if (document.getElementById(nObjet).innerHTML=="")
document.getElementById(nObjet).innerHTML = nContenu
else
document.getElementById(nObjet).innerHTML = "";
} else if (ie4) {
if (eval(nObjet).innerHTML=="")
eval(nObjet).innerHTML = nContenu
else
eval(nObjet).innerHTML = "";
}
}
// -->
</script>
</head>
<body>
<div class="monObjet" id="monObjet1" onclick="twChangeObjet('sm1',txt1);">Niveau 1</div>
<div id="sm1"></div>
Ça devrait faire l'affaire, sinon mixte du texte en hyperlien normal et des saut de ligne avec des une liste <ul> à deux niveau.
Ciao
Oznog
Réponses
|