Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/02/2006, 10:23
zaqpz
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 18 años, 9 meses
Puntos: 2
Hola, gracias nuevamente.

Lo del setTimeOut no es mala idea, pero de hecho preferiría que sea el "plan B", tu 2º idea de la del foco no acabo de comprenderla.

A continuación pego un ejemplito con mi problema simplificado al máximo:

Código:
<html>
<head>
<style type="text/css"> 
#lista
{
	background-color:#EAEAEA;
	position:absolute;
	width:120px;
	top:100px;
	left:100px;
	display:none;
} 

.resaltado
{
	background-color:#FFFFFF; 
	cursor:pointer;
}

.normal
{
	background-color:#EAEAEA;
}
</style>

<script language="javascript" type="text/javascript">
function rellenaCampo()
{	
	campo=document.getElementById("input_2");
	div=document.getElementById("lista");
	valor=campo.value;
	
	if(valor.length>=2) div.style.display="block";
}

</script>
</head>
<body>
<input onBlur="document.getElementById('lista').style.display='none'" onKeyUp="rellenaCampo()" type="text" id="input_2" />

<div id="lista">

<div id="1" onClick="document.getElementById('input_2').value=this.innerHTML; document.getElementById('lista').style.display='none'" onMouseOut="this.className='normal'" onMouseOver="this.className='resaltado'">Elemento 1</div>

<div id="2" onClick="document.getElementById('input_2').value=this.innerHTML; document.getElementById('lista').style.display='none'" onMouseOut="this.className='normal'" onMouseOver="this.className='resaltado'">Elemento 2</div>

</div>
</body>
</html>
Ahí se ve claramente lo que tu dices, primero se ejecuta el onBlur y luego el onClick, y si le saco el onBlur la lista quedaría eternamente en pantalla hasta que se cliquee una opción, y si le saco el onClick no puedo rellenar en input con la opción elegida.

Espero no abusar de su paciencia.
Un saludo.
__________________
R4DS en español | R4DS en inglés

Última edición por zaqpz; 22/02/2006 a las 11:00