Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/03/2011, 12:19
Maracanaido
 
Fecha de Ingreso: julio-2009
Mensajes: 30
Antigüedad: 14 años, 9 meses
Puntos: 0
Llamada de función con pasada de variables en un setTimeout

Muy buenas, tengo esta clase en javascript:
Código:
function MenuList (param1, param2)
{
	/* Variables */
	var main = getEl (param1);
	var sub = getEl (param2);
		
	/* Eventos */
	main.onmouseover = hover;
	main.onmouseout = leave;
	
	function hover ()	// 	
	{
		for (var i = 0; i <= 10; i++)
		{
			setTimeout('opacidad (' + i + ')', i * 50);
		}
	}

	function leave ()
	{
		for (var i = 10; i > 0; i--)
		{
			setTimeout ('opacidad (' + i + ')', (10 - i) * 50);
		}
	}
	
	function opacidad (value)
	{
		sub.style.opacity = value / 10;
		// sub.style.filter = 'alpha(opacity=' + val * 10 + ')';
	}

	function getEl (val)
	{
		return (typeof (val) == 'string') ? document.getElementById(val) : val;
	}
}
Pues bien, en el setTimeout no sé por qué pero no puedo llamar a la función opacidad (value), si lo sustituyo por un alert con las mismas comillas funciona perfectamente. Si elimino las comillas y quito la variable pasada por parámetro también, sin embargo necesito pasar la variable.

¿Alguna idea? Gracias de antemano.

Última edición por Maracanaido; 18/03/2011 a las 12:26