Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/04/2012, 12:40
Kritik
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
Respuesta: settimeout sobre función que llama a función no funciona

Según la web "http://www.w3schools.com/js/js_timing.asp" la sintaxis es la siguiente.

var t=setTimeout("javascript statement",milliseconds);

Y en su ejemplo...

<html>
<head>
<script type="text/javascript">
function timeMsg()
{
var t=setTimeout("alertMsg()",3000);
}
function alertMsg()
{
alert("Hello");
}
</script>
</head>

<body>
<form>
<input type="button" value="Display alert box in 3 seconds" onclick="timeMsg()" />
</form>
</body>
</html>

Fijándome en la línea del SetTimeout...

var t=setTimeout("alertMsg()",3000);

He modificado este mismo código para mandar una variable en la función...

<html>
<head>
<script type="text/javascript">
function timeMsg(msg)
{
var t=setTimeout("alertMsg(msg)",3000);
}
function alertMsg(msg)
{
alert(msg);
}
</script>
</head>

<body>
<form>
<input type="button" value="Display alert box in 3 seconds" onclick="timeMsg("Hello");">
</form>
</body>
</html>

Y no me ha funcionado, el botón deja de actuar y no hace nada. Deduzco entonces que la función no puede mandar valores si se hace con el setTimeout.

Si no puedo mandar valores en al función, no me sirve. En mi código me da igual, pues lo quería para crear el efecto de que el ordenador tarda porque está funcionando y calculando (pensando). Así que lo hago sin el setTimeout y no pasa nada. Pero me ha resultado raro que esto no se pueda hacer.

Última edición por Kritik; 28/04/2012 a las 12:51