Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/02/2012, 14:56
tomirammstein
 
Fecha de Ingreso: septiembre-2011
Mensajes: 52
Antigüedad: 12 años, 8 meses
Puntos: 0
Exclamación Problema con funcion dentro de objeto.

Hola a todos, estoy acá porque tuve un problema usando una función dentro de un objeto estilo JSON.

El punto es este :

Código Javascript:
Ver original
  1. window.fade ={
  2.   color : 0,
  3.   suma : 10,
  4.   fadeIn : function aparecer(){
  5.     var obj = document.getElementById('escondido');
  6.     obj.style.display = "block";
  7.     this.color += this.suma;
  8.     if (!(this.color>=110)){
  9.       obj.style.filter = 'alpha(opacity='+this.color+')';
  10.       obj.style.opacity = this.color /100;
  11.       obj.style.MozOpacity = this.color /100;
  12.       obj.style.KHTMLOpacity = this.color /100;
  13.       window.setTimeout ([error]"this.fadeIn();"[/error], 100);
  14.     }
  15.   }
  16. };

El área en donde consta mi problema esta resaltado entre [error] y [/error], para aclarar el problema en sí.,

Cuando llamo al objeto y a la funcion así:
Código Javascript:
Ver original
  1. fade.fadeIn();

Sale un error desde consola así:
Uncaught TypeError: Object [object DOMWindow] has no method 'fadeIn'

Y si lo pongo así:
Código Javascript:
Ver original
  1. fade.fadeIn.aparecer();

Me sale este error:
TypeError: Object has no method 'aparecer'

Entonces traté de modificar el código en sí, y lo puse así:
Código Javascript:
Ver original
  1. window.fade ={
  2.   color : 0,
  3.   suma : 10,
  4.   fadeIn : function aparecer(){
  5.     var obj = document.getElementById('escondido');
  6.     obj.style.display = "block";
  7.     this.color += this.suma;
  8.     if (!(this.color>=110)){
  9.       obj.style.filter = 'alpha(opacity='+this.color+')';
  10.       obj.style.opacity = this.color /100;
  11.       obj.style.MozOpacity = this.color /100;
  12.       obj.style.KHTMLOpacity = this.color /100;
  13.       window.setTimeout ("aparecer();", 100);
  14.     }
  15.   }
  16. };

Entonces lo llamo así:
Código Javascript:
Ver original
  1. fade.fadeIn();

Y funciona, solo que el setTimeout NO funciona, ya que me sale este error:
Uncaught ReferenceError: aparecer is not defined

¿Alguien puede darme sugerencias?
Para ser más especifico, este script es para que cierto div, con display:none, y opacity: 0, se haga con display:block y que con el setTimeout se vaya haciendo cada vez del color más solido, pero ese setTimeout NO funciona, eso es lo que necesito.

Espero haber sido prolijo y especifico, muchas gracias de antemano.

Última edición por tomirammstein; 05/02/2012 a las 15:01 Razón: HIGHLIGHT con texto enriquecido.