Bonjour, voici une fonction récursive qui cache les éléments ul contenus au sein du li passé en paramètre.
En gros dans une boucle sur les childNodes d'un ul j'ai if(closeSubMenu(menu.childNodes[ i])) continue; et un petit peu plus bas j'ai un menu.childNodes[ i].childNodes[j].style.display = 'block' (<-ul)
Mon problème c'est que le script ignore "continue" et donc ça ferme le bloc qui s'ouvre (<-ul).
C'est toujours difficile d'être clair. Mais ma question se résume surtout à : comment faire pour que le code "attende" l'exécution complète d'une fonction récursive. Apparement avec if(COND) continue; ça ne l'empêche pas de traiter la suite du code ce qui est "chronologiquement" ennuyeux.
function closeSubMenu(li)
{
for(var i = 0; i < li.childNodes.length; i++)
{
if(li.childNodes[ i].nodeType == 1 && li.childNodes[ i].nodeName.toLowerCase() == 'ul')
{
for(var j = 0; j < li.childNodes[ i].childNodes.length; j++)
{
if(li.childNodes[ i].childNodes[j].nodeType == 1 && li.childNodes[ i].childNodes[j].nodeName.toLowerCase() == 'li')
{
if(closeSubMenu(li.childNodes[ i].childNodes[j])) continue;
}
}
li.childNodes[ i].style.display = 'none';
}
}
return true;
}
En gros dans une boucle sur les childNodes d'un ul j'ai if(closeSubMenu(menu.childNodes[ i])) continue; et un petit peu plus bas j'ai un menu.childNodes[ i].childNodes[j].style.display = 'block' (<-ul)
Mon problème c'est que le script ignore "continue" et donc ça ferme le bloc qui s'ouvre (<-ul).
C'est toujours difficile d'être clair. Mais ma question se résume surtout à : comment faire pour que le code "attende" l'exécution complète d'une fonction récursive. Apparement avec if(COND) continue; ça ne l'empêche pas de traiter la suite du code ce qui est "chronologiquement" ennuyeux.