Foros del Web » Programando para Internet » Javascript »

Problema cambiando la imagen de fondo :S

Estas en el tema de Problema cambiando la imagen de fondo :S en el foro de Javascript en Foros del Web. Weno, el código que hice es: Código: function MoveScrollbar(activate,side) { if(activate) { if(side) { this.style.backgroundImage="url(images/arrow_ri_gl.png)"; intervalId=setInterval("MoveIt(true)",10); } else { this.style.backgroundImage="url(images/arrow_le_gl.png)"; intervalId=setInterval("MoveIt(false)",10); } } else { ...
  #1 (permalink)  
Antiguo 22/07/2009, 11:45
 
Fecha de Ingreso: mayo-2008
Ubicación: En la guarida del mal, tratando de conquistar el mundo
Mensajes: 174
Antigüedad: 16 años
Puntos: 2
Pregunta Problema cambiando la imagen de fondo :S

Weno, el código que hice es:

Código:
function MoveScrollbar(activate,side)
{
		if(activate)
		{
			if(side)
			{
				this.style.backgroundImage="url(images/arrow_ri_gl.png)";
				intervalId=setInterval("MoveIt(true)",10);
			}
			else
			{
				this.style.backgroundImage="url(images/arrow_le_gl.png)";
				intervalId=setInterval("MoveIt(false)",10);
			}
		}
		else
		{
			clearInterval(intervalId);
		}
}
El problema es que me da el error "this.style is undefined", la función la estoy llamando desde una div :S.

Sin la parte de cambiar la imagen de fondo me anda perfecto :S.

EDITO; Ya lo "solucioné" poniendo al objeto html como un parámetro y enviando "this" cuando llamo la función... Pero estoy seguro que se puede hacer sin tener que pasar el parámetro :S.

Última edición por ZequeZ; 22/07/2009 a las 12:10
  #2 (permalink)  
Antiguo 22/07/2009, 12:09
Avatar de Legoltaz  
Fecha de Ingreso: agosto-2008
Mensajes: 325
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: Problema cambiando la imagen de fondo :S

Prueba cambiando this por document.getElementById();
  #3 (permalink)  
Antiguo 22/07/2009, 12:12
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problema cambiando la imagen de fondo :S

@legolaz: mi disculpa pero no me fije que ya habias respondido.

otra alternativa es pasando el elemento como argumento a la funcion. sucede que el keyword this hace referencia a otro objeto porque la funcion esta definida en un nivel diferente. es decir, la funcion no fue definida en el mismo elemento.

Código:
function MoveScrollbar(elem,activate,side)
{
		if(activate)
		{
			if(side)
			{
				elem.style.backgroundImage="url(images/arrow_ri_gl.png)";
				intervalId=setInterval("MoveIt(true)",10);
			}
			else
			{
				elem.style.backgroundImage="url(images/arrow_le_gl.png)";
				intervalId=setInterval("MoveIt(false)",10);
			}
		}
		else
		{
			clearInterval(intervalId);
		}
}


<div onclick="MoveScrollbar(this, ..., ...);">...</div>
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 22/07/2009, 12:23
 
Fecha de Ingreso: mayo-2008
Ubicación: En la guarida del mal, tratando de conquistar el mundo
Mensajes: 174
Antigüedad: 16 años
Puntos: 2
Respuesta: Problema cambiando la imagen de fondo :S

Cita:
Iniciado por zerokilled Ver Mensaje
@legolaz: mi disculpa pero no me fije que ya habias respondido.

otra alternativa es pasando el elemento como argumento a la funcion. sucede que el keyword this hace referencia a otro objeto porque la funcion esta definida en un nivel diferente. es decir, la funcion no fue definida en el mismo elemento.

Código:
function MoveScrollbar(elem,activate,side)
{
		if(activate)
		{
			if(side)
			{
				elem.style.backgroundImage="url(images/arrow_ri_gl.png)";
				intervalId=setInterval("MoveIt(true)",10);
			}
			else
			{
				elem.style.backgroundImage="url(images/arrow_le_gl.png)";
				intervalId=setInterval("MoveIt(false)",10);
			}
		}
		else
		{
			clearInterval(intervalId);
		}
}


<div onclick="MoveScrollbar(this, ..., ...);">...</div>

Sisi, eso es exactamente lo que hice, la cosa es que ahora le tengo que agregar otro parámetro a la función y me sería muy práctico que pudiera usar "this" xD.

We, no importa, sigo pasando los elementos por parámetros, gracias a todos ^^.
  #5 (permalink)  
Antiguo 22/07/2009, 12:45
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problema cambiando la imagen de fondo :S

a ver, quizas esta otra alternativa te guste con tu codigo original.
Código:
<div onclick="MoveScrollbar.apply(this, [/*tus parametros aqui*/]);">...</div>
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
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 21:34.