Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/11/2010, 10:35
devnieL
 
Fecha de Ingreso: noviembre-2009
Ubicación: 127.0.0.1
Mensajes: 31
Antigüedad: 14 años, 4 meses
Puntos: 1
alert(this.name) muestra undefined dentro de funcion

Hola a todos, una pregunta, ¿ por qué cuando corro este script y hago clic en los objetos me sale undefined ?

Código:
function cBloque(i,j) {
	this.name = "fila[" + i + "," + j + "]";
	this.crear = function(){
		this.bloque = document.createElement("div");
		this.bloque.className = "bloque_1";
		document.body.appendChild(this.bloque);
	}
	
	this.addEvent = function(){
		
		// Agregando Evento
		
		if(this.bloque.addEventListener){
			// Mozilla
			this.bloque.addEventListener('click',function(event){
				alert(this.name); <----- Aquí
			},false);
		}
			// Iexplorer.
		else if ( this.bloque.attachEvent){
			this.bloque.attachEvent('onclick',function(event){
				alert("hola");
			});
		}
	}	
}

// Funcion para crear el tablero

function tablero(){
	for(var i=0;i<=fila.length-1;i++){
		for(var j=0;j<=fila[i].length - 1;j++){
			var bloque = new cBloque(i,j);
			alert(bloque.name);
			bloque.crear();
			bloque.addEvent();
			
		}
	}
}

Si a la funcion addEvent le agrego un parametro "nombre" y en la llamada pongo bloque.addEvent(bloque.name), sí funciona.

Quisiera saber porque el primer script no .