Originariamente inviato da andr3a
magari evita di usare tutte le variabili pubbliche/globali ... tipo ID, lst e perfino la i
Spero mi si perdonino eventuali ingenuità dovute ad inesperienza.

Ho sostituito la mia funzione con la tua ma il problema persiste.
Non va perché i menu si aprono dopo mezzo secondo però quando tento di accedere alle sottovoci si richiude subito. Mi direste dove sbaglio
Ti posto il codice di pagina per intero così chi vuole lo può provare

codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Esercitazione: Menu orizzontale a comparsa</title>
<style type="text/css">
html, body { margin: 0; padding: 0; }
body { font: 76% arial, tahoma, sans-serif; }

div#navigation div { float: left; position: relative; }
div#navigation h3 { margin: 0; padding: 0; border-left: 1px solid #fff; background: #900; width: 125px; text-align: center; line-height: 20px; font-size: 110%; color: #fff; }
div#navigation ul { position: absolute; top: 20px; left: 0; margin: 0; padding: 0; background: #fff; }
div#navigation ul li { list-style-type: none; }
div#navigation a { display: block; border-right: 1px solid #000; border-bottom: 1px solid #000; border-left: 1px solid #000; background: #ffd; width: 124px; height: 20px; text-indent: 3px; text-decoration: none; line-height: 20px; color: #000; }
div#navigation a:hover { background: #ff9; }

div.jsok h3 { cursor: pointer; }
div#navigation h3.current { background: #f00; }
div#navigation h3.inactive { background: #900; }
div.jsok ul { display: none; }
div.jsok ul.show { display: block; }
div.jsok ul.hide { display: none; }

hr { clear: left; visibility: hidden; }
</style>

<script type="text/javascript">
window.onload = function()  {
	if (document.getElementById && document.getElementsByTagName)  {
		document.getElementById("navigation").className = "jsok";
		menuEnable();
	}
}

function menuEnable()  {
	for(var	
		i = 0,
		lstItem = document.getElementById("navigation").getElementsByTagName("div"),
		showLst = function(lst){return function(){lst.className = "show"}};
		i < lstItem.length;
		i++
	){
		lstItem[i].onmouseover = function()  {
			this.lst = (this.lastChild.tagName == "UL")?this.lastChild :this.lastChild.previousSibling;
			this.ID = setTimeout(showLst(this.lst), 500);
		}
		lstItem[i].onmouseout = function()  {
			clearTimeout(this.ID);
			this.lst.className = "hide";
		}
	};
};
</script>
</head>

<body>
<div id="navigation">
	<div>
		<h3>Voce1</h3>
		<ul>
		[*]Sottovoce1
		[*]Sottovoce2
		[*]Sottovoce3
		[*]Sottovoce4
		[/list]
	</div>
	<div>
		<h3>Voce2</h3>
		<ul>
		[*]Sottovoce1
		[*]Sottovoce2
		[*]Sottovoce3
		[*]Sottovoce4
		[*]Sottovoce5
		[/list]
	</div>
	<div>
		<h3>Voce3</h3>
		<ul>
		[*]Sottovoce1
		[*]Sottovoce2
		[*]Sottovoce3
		[*]Sottovoce4
		[*]Sottovoce5
		[*]Sottovoce6
		[/list]
	</div>
	<div>
		<h3>Voce4</h3>
		<ul>
		[*]Sottovoce1
		[*]Sottovoce2
		[*]Sottovoce3
		[*]Sottovoce4
		[*]Sottovoce5
		[*]Sottovoce6
		[/list]
	</div>
	<div>
		<h3>Voce5</h3>
		<ul>
		[*]Sottovoce1
		[*]Sottovoce2
		[*]Sottovoce3
		[*]Sottovoce4
		[*]Sottovoce5
		[*]Sottovoce6
		[/list]
	</div>
</div>

<hr />
<h3>Titolo di terzo livello</h3>


Paragrafo...seguito della pagina</p>
</body>

</html>