Foros del Web » Programando para Internet » Javascript »

Una funcion de mi objecto no funciona :(

Estas en el tema de Una funcion de mi objecto no funciona :( en el foro de Javascript en Foros del Web. Saludos Amigos, les planteo mi problema: <script languaje="javascript"> function myObjeto(id) { this.id=id; this.time=50; this.cont = {}; this.initL = function() { this.cont = setInterval("this.Mensaje();",this.time); } this.Mensaje ...
  #1 (permalink)  
Antiguo 12/06/2009, 10:58
Avatar de kyoalex  
Fecha de Ingreso: diciembre-2006
Ubicación: Merida Yuc Mexico
Mensajes: 36
Antigüedad: 17 años, 5 meses
Puntos: 0
Pregunta Una funcion de mi objecto no funciona :(

Saludos Amigos, les planteo mi problema:

<script languaje="javascript">
function myObjeto(id)
{
this.id=id;
this.time=50;
this.cont = {};
this.initL = function()
{
this.cont = setInterval("this.Mensaje();",this.time);
}
this.Mensaje = function()
{
alert(this.time);
clearInterval(this.cont);
}
}

//Creo mi instancia
var myInstancia = new myObjeto('esteId');

</script>

<!-- ahora en un tag de tipo <a> mando llamar al metodo init-->
<a href="myInstancia.initL();">Dame click</a>

EL gran problema que tengo es que el setInterval tras pasar los 50 que tiene asignado this.time, no me reconoce mi metodo this.Mensaje()

Alguien tiene ideas de por que pasa esto ???
estoy desarrollando en firefox.!
  #2 (permalink)  
Antiguo 12/06/2009, 11:04
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 5 meses
Puntos: 56
Respuesta: Una funcion de mi objecto no funciona :(

Código javascript:
Ver original
  1. this.cont = setInterval(function(){this.Mensaje()},this.time);
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #3 (permalink)  
Antiguo 12/06/2009, 11:12
Avatar de kyoalex  
Fecha de Ingreso: diciembre-2006
Ubicación: Merida Yuc Mexico
Mensajes: 36
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Una funcion de mi objecto no funciona :(

graxx por responder America|UNK

Pero me sigue marcando el mismo error el firebug:

this.Mensaje is not a function :(
  #4 (permalink)  
Antiguo 12/06/2009, 11:50
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 4 meses
Puntos: 57
Respuesta: Una funcion de mi objecto no funciona :(

Para que detienes un intervalo (con clearInterval) la primer vez que se ejecuta el setInterval? no veo el caso. Mejor utiliza setTimeout. Ese se va a ejecutar una sola vez.

Seguramente lo que sucede es que cuando se ejecuta la funcion que especificaste en setInterval, ya no estas dentro de myObjeto. Quiero decir que cuando se ejecuta la funcion del setInterval, this ya no esta en el contexto de myObjeto.

Podrias modificar el codigo para que el setInterval llame a la funcion de la instancia que creaste:
Código:
this.cont = setInterval("myInstancia.Mensaje();",this.time);
Podria funcionar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:27.