Question déroulantes sur réponse FAQ

Résolu
Patoch250 Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   -  
Patoch250 Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Suite à une mission donnée par mon maître de stage je dois créer un Intranet avec une partie FAQ où lorsque l'on clique sur la question celle ci déroule en dessous la réponse. Mon problème c'est qu'il faut que je partage les questions en plusieurs parties. J'ai donc un problème pour apeler le code Javascript dans les différentes classe html. Voici le code pour vous faciliter la compréhension. Merci d'avance.

<script type="text/javascript">

if(!window.Node){
var Node = {ELEMENT_NODE : 1, TEXT_NODE : 3};
}

function checkNode(node, filter){
return (filter == null || node.nodeType == Node[filter] || node.nodeName.toUpperCase() == filter.toUpperCase());
}

function getChildren(node, filter){
var result = new Array();
var children = node.childNodes;
for(var i = 0; i < children.length; i++){
if(checkNode(children[i], filter)) result[result.length] = children[i];
}
return result;
}

function getChildrenByElement(node){
return getChildren(node, "ELEMENT_NODE");
}

function getFirstChild(node, filter){
var child;
var children = node.childNodes;
for(var i = 0; i < children.length; i++){
child = children[i];
if(checkNode(child, filter)) return child;
}
return null;
}

function getFirstChildByText(node){
return getFirstChild(node, "TEXT_NODE");
}

function getNextSibling(node, filter){
for(var sibling = node.nextSibling; sibling != null; sibling = sibling.nextSibling){
if(checkNode(sibling, filter)) return sibling;
}
return null;
}
function getNextSiblingByElement(node){
return getNextSibling(node, "ELEMENT_NODE");
}

// Menu Functions & Properties

var activeMenu = null;

function showMenu() {
if(activeMenu){
activeMenu.className = "";
getNextSiblingByElement(activeMenu).style.display = "none";
}
if(this == activeMenu){
activeMenu = null;
} else {
this.className = "active";
getNextSiblingByElement(this).style.display = "block";
activeMenu = this;
}
return false;
}

function initMenu(){
var menus, menu, menu2, menus2, text, a, i;
menus = getChildrenByElement(document.getElementById("faq"));
menus2 = getChildrenByElement(document.getElementById("faq2"));

for(i = 0; i < menus.length; i++){
menu = menus[i];
text = getFirstChildByText(menu);
a = document.createElement("a");
menu.replaceChild(a, text);
a.appendChild(text);
a.href = "#";
a.onclick = showMenu;
a.onfocus = function(){this.blur()};



}

}




3 réponses

Flog78
 
je n'ai pas lu tout ton code mais si tu veux juste afficher la réponse en dessous lorsqu'il clique sur la question voila ce que je propose :

<a href="javascript:;" onclick="javascript:show('contenu1')"> ma qestion ici </a>
<div id="contenu1" style="display:none">
coucou j'apparait
</div>

<br/>

<a href="javascript:;" onclick="javascript:show('contenu2')"> cliquer ici</a>
<div id="contenu2" style="display:none">
salut
</div>


<script type="text/javascript">
function show(indice)
{
	if (document.getElementById(indice).style.display=="none")
		document.getElementById(indice).style.display="block";
	else
		document.getElementById(indice).style.display="none";
}
</script>
3
Patoch250 Messages postés 66 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup! C'est exactement ce qu'il me fallait! Un code beaucoup plus simple!!
Tu me sauves la vie! Merci encore a bientôt !
0
Patoch250 Messages postés 66 Date d'inscription   Statut Membre Dernière intervention  
 
Personne ne peut m'aider ou personne n' a compris ce que je demande. Parce que sinon je reformule.
0
Patoch250 Messages postés 66 Date d'inscription   Statut Membre Dernière intervention  
 
Il faudrait que je crée une classe dans le code Javascript pour que je puisse le réutilisé n'importe dans mon HTML
0