Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/12/2010, 05:17
Pikus
 
Fecha de Ingreso: febrero-2010
Mensajes: 22
Antigüedad: 14 años, 2 meses
Puntos: 0
Recursividad con parámetro this

Hola a todos,

Tengo un problema al realizar una función recursiva mediante setTimeout y parámetro un parámetro "this". Mi idea es que el contenido que está dentro de una caja de texto (input text) se desplace de izquierda a derecha. El problema aparece con la función setTimeout, el código es el siguiente:

Código HTML:
Ver original
  1. <input  type="text" onmouseover="mueveTexto(this);" onmouseout="restaurar();" value="ARNES" name="nombreF" id="nombreF" />

Código Javascript:
Ver original
  1. function mueveTexto(id){
  2.     var texto=id.value;
  3.     texto = texto.substring(1, texto.length) + texto.charAt(0);
  4.     this.value = texto;
  5.     tiempo = setTimeout("mueveTexto("+id+")",150);
  6. }
  7.  
  8. function restaurar(){
  9.     clearTimeout(tiempo);
  10.  
  11. }

El error me lo lanza en setTimeout, el siguiente error:

Syntax error at line 1 in call to setTimeout:
mueveTexto([object HTMLInputElement])
----------------^
syntax error

¿No es esto lo que se ejecuta la primera vez al poner el ratón encima? Podría hacer esto sin problemas con un par de variables globales pero prefiero "hacerlo bien".

Gracias.