Foros del Web » Programando para Internet » Javascript »

onMousedown="changeImage(element)" Cómo soluciono este error que reporta?

Estas en el tema de onMousedown="changeImage(element)" Cómo soluciono este error que reporta? en el foro de Javascript en Foros del Web. -- Hola. Estoy cargando una imagen dinamicamente y la inserto en un <div>, la etiqueta de tal imagen contiene el evento y la función: Código: ...
  #1 (permalink)  
Antiguo 01/06/2011, 21:08
Avatar de GendeDios  
Fecha de Ingreso: mayo-2007
Ubicación: Paraiso de America
Mensajes: 135
Antigüedad: 16 años, 11 meses
Puntos: 10
onMousedown="changeImage(element)" Cómo soluciono este error que reporta?

--
Hola. Estoy cargando una imagen dinamicamente y la inserto en un <div>, la etiqueta de tal imagen contiene el evento y la función:

Código:
onMousedown="changeImage(element)"
...Cuando paso el parametro y hago uso de la función me marca:
Código:
Uncaught ReferenceError: element is not defined
(anonymous function)
onmousedown
...Esto me sucede con cualquier cosa que ponga de parametro excepto con this.

Existe una técnica especial para enviar parametricamente una variable atraves del evento onMousedown o estoy haciendo algo mal?

Mejor pongo el código completo:
Código:
 function changeImage(filename)
                {
                 document.images[5].src = filename.src;
                }

imgStrsel = '<img src="images/letters/gerbers/'+element.name+'_b.jpg" onMousedown="changeImage(element)">

document.getElementById('imgContSelect').innerHTML = 'Click Here to Select Letter'+imgStrsel;
Gracias.
--
  #2 (permalink)  
Antiguo 01/06/2011, 21:44
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: onMousedown="changeImage(element)" Cómo soluciono este error que reporta?

Código Javascript:
Ver original
  1. onMousedown="changeImage(element)"
Que es "element"? creo que quiere decir "this"

Código Javascript:
Ver original
  1. onMousedown="changeImage(this)"
  #3 (permalink)  
Antiguo 02/06/2011, 10:09
Avatar de GendeDios  
Fecha de Ingreso: mayo-2007
Ubicación: Paraiso de America
Mensajes: 135
Antigüedad: 16 años, 11 meses
Puntos: 10
Respuesta: onMousedown="changeImage(element)" Cómo soluciono este error que reporta?

--
Gracias InKarC. element nace de lo siguiente:

Código:
 function createw()
		{
                   imgStr += '<img src="images/letters/toy/TBB_'+wup[ij]+'.jpg" onMousedown="openselect(this);" name='+wup[ij]+'>';
                }
Código:
 function openselect(element)
 		{ 
                   imgStrsel = '<img src="images/letters/gerbers/'+element.name+'_b.jpg" onMousedown="javascript:element.src= this.src;"> /*Aquí es donde me genera el error, en: element.src, he igual si mando a element como parametro de una función: onMousedown="changeImage(element)", */
                 }
Como si element no estubiera definido, pero por qué? si el mismo element como se puede observar está siendo utilizado en la ruta de la imagen:
Código:
<img src="images/letters/gerbers/'+element.name+'_b.jpg"
y funciona perfectamente, por qué no funciona entre la función onMousedown?

La función onMousedown trabaja bien solo y unicamente cuando le paso como parametro a this, si le paso una variable que ha sido devinida por medio de var me dispara el mismo error.

Qué es lo que estoy haciendo mal? cómo puedo solucionar esto?, lo único que tengo que hacer cuando se da click con el mouse sobre la imagen es: element.src= this.src;

Muchas gracias.
--
  #4 (permalink)  
Antiguo 02/06/2011, 10:53
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: onMousedown="changeImage(element)" Cómo soluciono este error que reporta?

Cita:
function openselect(element)
{
imgStrsel = '<img src="images/letters/gerbers/'+element.name+'_b.jpg" onMousedown="javascript:element.src= this.src;"> 0'/*Aquí es donde me genera el error, en: element.src, he igual si mando a element como parametro de una función: onMousedown="changeImage(element)", */
}
Esto solo crea el HTML, pero no conserva el valor de "element", por que eso solo funciona en tiempo de ejecucion. Cuando se dispara el evento "mouseover" la variable "element" ya no existe.

Ese metodo por que el que esta buscando la solucion a su problema es muy confuso; seria mucho mejor que manejara en un array los elementos.

Ejemplo:

Código Javascript:
Ver original
  1. var conexion = []
  2.  
  3.  
  4. function openselect(element)
  5. {
  6.     conexion.push(element)
  7.     imgStrsel = '<img src="images/letters/gerbers/'+element.name+'_b.jpg" onMousedown="getImage(this, '+(conexion.length - 1)+')">'
  8. }
  9.  
  10. function getImage(a, n){
  11.     conexion[n].src = a.src:
  12. }
  #5 (permalink)  
Antiguo 02/06/2011, 19:40
Avatar de GendeDios  
Fecha de Ingreso: mayo-2007
Ubicación: Paraiso de America
Mensajes: 135
Antigüedad: 16 años, 11 meses
Puntos: 10
Respuesta: onMousedown="changeImage(element)" Cómo soluciono este error que reporta?

--
Gracias InkarC. A veces se aprende a pasos pequeños también. No alcanzaba a concebir que se borran las variables locales cuando se ejecuta un nuevo evento por parte del usuario.
Código Javascript:
Ver original
  1. alert("Que tu vida esté llena de éxitos.")
--

Etiquetas: funtion, onmousedown, parametro
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 13:20.