Foros del Web » Programando para Internet » Javascript »

Problema raro con addEventListener

Estas en el tema de Problema raro con addEventListener en el foro de Javascript en Foros del Web. Buenas el problema que tengo es el siguiente, el código funciona bien pero en chrome me sale siempre el error de "boton.addEventListener no es una ...
  #1 (permalink)  
Antiguo 16/11/2015, 20:20
 
Fecha de Ingreso: octubre-2014
Ubicación: Mendoza
Mensajes: 10
Antigüedad: 9 años, 5 meses
Puntos: 0
Problema raro con addEventListener

Buenas el problema que tengo es el siguiente, el código funciona bien pero en chrome me sale siempre el error de "boton.addEventListener no es una función", alguien sabría el por qué?.Acá les dejo el codigo(soy nuevo en javascript)

Código Javascript:
Ver original
  1. var Preloader;
  2.         var imgAssets = ["img/heroe2.png","img/enemigo.png","img/moneda1.png","img/puerta.png","img/llave1.png","img/texturaPlataforma.jpg","img/fondo.png"];
  3.        
  4.         window.addEventListener("load",function(){
  5.             Preloader = new PreloadJS();
  6.             Preloader.onProgress = progresoCarga;
  7.             cargar();
  8.             var iniciadores = document.getElementsByClassName('start');
  9.             for(i in iniciadores){
  10.                 var boton = iniciadores[i];
  11.                 if (document.addEventListener)
  12.                     boton.addEventListener("click", iniciarJuego, false);
  13.                 else if (document.attachEvent)
  14.                     boton.attachEvent("onclick", iniciarJuego);
  15.             }
  16.         }, false);  
  17.        
  18.         function progresoCarga(){
  19.             if(Preloader.progress == 1){//progress devuelve 0 si no se ha cargado nada y 1 cuando ha terminado de cargar
  20.                 //nivelUno();
  21.                 document.querySelector("#info").style.display = "block";
  22.             }
  23.         }
  24.        
  25.         function cargar(){
  26.             while(imgAssets.length > 0){
  27.                 var url = imgAssets.shift();//shift elimina la ultima imagen del arreglo y la guarda en la variable, en este caso url
  28.                 Preloader.loadFile(url);//loadFile sirve para cargar un archivo y recibe como parametro una url
  29.             }
  30.         }
  31.        
  32.         function iniciarJuego(){
  33.             document.querySelector("#info").style.display = "none";
  34.             document.querySelector("#lose").style.display = "none";
  35.             document.querySelector("#win").style.display = "none";
  36.             nivelUno();
  37.         }
Desde ya muchas gracias por su tiempo(si el mismo tema ya está pido disculpas)
  #2 (permalink)  
Antiguo 17/11/2015, 05:45
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 9 meses
Puntos: 1012
Respuesta: Problema raro con addEventListener

olvida el método getElementsByClassName() y usa querySelector() o en tu caso querySelectorAll()
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 17/11/2015, 16:18
 
Fecha de Ingreso: octubre-2014
Ubicación: Mendoza
Mensajes: 10
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Problema raro con addEventListener

Isabel muchas gracias por tu respuesta.Lo corregí pero me sigue dando el mismo error, los más gracioso es que el código funciona sin problemas.El error exacto que me tira es el siguiente "Uncaught TypeError: boton.addEventListener is not a function(anonymous function) @ index.html:75", donde la línea 75 es la linea 9 en este caso:

Código Javascript:
Ver original
  1. window.addEventListener("load",function(){
  2.             Preloader = new PreloadJS();
  3.             Preloader.onProgress = progresoCarga;
  4.             cargar();
  5.             var iniciadores = document.querySelectorAll(".start");
  6.             for(i in iniciadores){
  7.                 var boton = iniciadores[i];
  8.                 if (document.addEventListener)
  9.                     boton.addEventListener("click", iniciarJuego, false);
  10.                 else if (document.attachEvent)
  11.                     boton.attachEvent("onclick", iniciarJuego);
  12.             }
  13.         }, false);
  #4 (permalink)  
Antiguo 18/11/2015, 09:15
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 9 meses
Puntos: 1012
Respuesta: Problema raro con addEventListener

prueba ahora
Cita:
Array.prototype.forEach.call(document.querySelecto rAll(".start"), function(v, i, arr) {
if (document.addEventListener)
arr[i].addEventListener("click", iniciarJuego, false);
else if (document.attachEvent)
arr[i].attachEvent("onclick", iniciarJuego);
});
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #5 (permalink)  
Antiguo 18/11/2015, 12:08
 
Fecha de Ingreso: octubre-2014
Ubicación: Mendoza
Mensajes: 10
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Problema raro con addEventListener

Isabel gracias por tu respuesta, pero no entiendo en que parte tendría que colocar ese código, gracias igual por tu respuesta.

Etiquetas: addeventlistener, funcion, js, raro, select, variable
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 16:13.