11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour

Je voudrais faire un truc (pas trop difficile?!?)

L'idée c'est de faire une page html, avec un lien quand on clique dessus, un div apparaisse en dessous contenant des détails sur le liens et que quand on réclic sur le meme lien, le detail disparait(caché).

Voici ce que j'ai fait. Et ça marche sur Firefox, mais pas sur IE7 ni InternetExplore6 : Erreur : objet attendu

SVP, quelqu'un pourrait-il m'eclairer???
Voici les codes : j'ai mis dans un seul fichier pour être facilement testable :


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>TEST</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script>
LAST_DIPSPLAYED_NODE = null;
LAST_REF_NODE = null;
function hideEveryNode(){
var aElem = document.getElementsByTagName('ul');
for each (elem in aElem){
elem.setAttribute ? setDisplay(elem, 'none') : {};
}
LAST_DIPSPLAYED_NODE = elem;
}

function inverseDisplay(elem){
return setDisplay(elem, (elem.style.display == 'none' ? 'block;' : 'none;'));
}

function setDisplay(elem, value){
elem.setAttribute ? elem.setAttribute('style', 'display:' + value + ';') : {};
return (value == 'none') ? null : elem;
}

function turnDisplay(ref_node){
if(ref_node == LAST_REF_NODE)
var this_node = LAST_DIPSPLAYED_NODE;
else
var this_node = ref_node.getElementsByTagName('ul')[0];
inverseDisplay(this_node);
if (LAST_DIPSPLAYED_NODE != this_node)
setDisplay(LAST_DIPSPLAYED_NODE, 'none');
LAST_DIPSPLAYED_NODE = this_node;
LAST_REF_NODE = ref_node;
}
</script>

</head>
<body onload="hideEveryNode();">
<div id="global">

<div class="block" onclick="turnDisplay(this);">
<a href="#">D1 : Dossier1
</a>
<p><ul>
<li>Detail1a</li>
<li>Detail1b</li>
</ul></p>
</div>
<div class="block" onclick="turnDisplay(this);">
<a href="#">D2 : Dossier2
</a>
<p>
<ul>
<li>Detail2a</li>
<li>Detail2b</li>
</ul>
</p>
</div>

</div>
</body>
</html>

Merci

Smiley sweatdrop
Bonjour et bienvenue parmi nous Smiley smile

En tant que modératrice, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

upload/1-code.gif
Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

D'ailleurs, je rappelle que le lien qui apparaît en bandeau tout en haut du forum ("Nouveau sur le forum ?...") est important. Il contient des pistes de recherche, des indications sur les règles de vie de la communauté, etc.
Il serait courtois de ta part de bien vouloir en prendre connaissance.

Bonne continuation Smiley smile
Merci pour les réponses

Toutes mes excuses(surtout à la Modératrice Smiley confused ) pour les codes

Promis, Je ferais extrêmement attention la prochaine fois.