ho scritto questo html:

codice:
<ul id="menu">[*]menu 1.1
	<ul>
	[*]sotto menu 1.1
	[*]sotto menu 1.2
	[*]sotto menu 1.3
	[*]sotto menu 1.4
	[/list]
[*]menu 1.2
	<ul>
	[*]sotto menu 2.1
	[*]sotto menu 2.2
	[*]sotto menu 2.3
	[*]sotto menu 2.4
	[/list]
[/list]
e questo script per mostrare i sottomenu all'onclick sui[*] del menu padre:

codice:
 <script type="text/javascript">
// nasconde gli <ul> figli del menu principale
window.onload = function(){
if(document.getElementsByTagName && document.getElementById){
    var menu = document.getElementById("menu");
		var a_sottomenu = menu.getElementsByTagName("ul");
		// alert(a_sottomenu.length);
			for(var i=0; i<a_sottomenu.length; i++){
				a_sottomenu[i].style.display = "none";
			}
	
	// alert(menu.childNodes.length);
	// cicla tra i[*] figli diretti del menu principale per assegnare il comportamento dell'evento onclick
	for (var i=0; i<menu.childNodes.length; i++)
		
		// se l'elemento figlio preso in considerazione è un[*], allora ...
		if (menu.childNodes[i].nodeName.toLowerCase() == "li") {
			li = menu.childNodes[i];
			// ... attribuisce a tale[*] il seguente metodo attivato dall'onclick 
			li.onclick = function(){
				var ul_figlio = this.getElementsByTagName("ul")[0];
					if(ul_figlio.style.display == "block"){
						ul_figlio.style.display = "none";
					}
					else{
						ul_figlio.style.display = "block";
					}
				}
			}
		}
	}
</script>
tutto funziona bene eccetto un'anomalia che ho riscontrato per caso: anche i link dei menu figli sono in grado di far collassare i sottomenu (a cui appartengono) all'onclick. pensavo che la funzione abilitante a questa capacità fosse assegnata solo ai[*] del menu padre!

come risolvo la cosa?