Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/05/2016, 10:22
Sirakx
 
Fecha de Ingreso: octubre-2015
Mensajes: 7
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: getAttribute style no funciona con ciclo for de php!

Cita:
Iniciado por Alexis88 Ver Mensaje
Antes de indicar la manera en la que puedes seleccionar a cualquiera de dichos elementos, debes saber que jamás debes de repetir el mismo id dentro del mismo documento HTML. Puedes repetir clases o nombres, pero nunca un id. Recuerda siempre que se trata de un dato único.

Ahora bien. El problema surge precisamente por intentar tomar a un elemento cuyo dato identificador se repite en otros elementos existentes en el mismo documento. Cuando intentas hacer algo semejante, solo logras obtener al primero de todos los elementos, y como estableces los valores de la posición del fondo con los valores de los contadores de los bucles y ambos empiezan con el valor cero, por ende, el primer elemento tiene "-0px" de top y left, respectivamente.

Si quisieras obtener las coordenadas de cualquiera de los elementos generados, deberías utilizar la propiedad [URL="https://developer.mozilla.org/en-US/docs/Web/API/Event/target"][inline]target[/inline][/URL] del [URL="https://developer.mozilla.org/es/docs/Web/API/Event"]objeto del evento[/URL]:
Código Javascript:
Ver original
  1. function getImagePosition(event){
  2.     if (event.target.className == "imagen"){
  3.         var demo = event.target.style.backgroundPosition;
  4.         alert(demo.toString());
  5.     }
  6. }
De esta manera, si el elemento directamente afectado por el clic posee como clase a la cadena "imagen", tomas la posición de su fondo.

NOTA: Cuando asocias una función manejadora a un evento que se registra en un elemento del DOM, el objeto del evento es el primer argumento por defecto, a menos de que se especifique otro; por eso es que, en el ejemplo, lo defino de esa manera, sin tener que pasarlo como argumento.

Un saludo
Muy muchas gracias! con respecto a lo que dices que no se debe repetir la misma ID y pongo el evento target que me comentas, esta bien si lo dejo así o necesito cambiar los ids para que no se repitan?