Tengo un archivo html que simplificado sería
Código: Seleccionar todo
<html>
<body>
<table id="MiTabla">
<tbody></tbody>
</table>
</body>
</html>
y un javascript que genera la tabla dinámicamente mediante los métodos de "DOM":
Código: Seleccionar todo
function crea_tabla(){
var n=5;//filas
var n2=4;//columnas
var tblBody = document.getElementById("MiTabla").getElementsByTagName("tbody")[0];
for (var f=0;f<n;f++) {
var fila = document.createElement("tr");
for (var c=0;c<n2;c++) {
var celda = document.createElement("td");
var textoCelda;
textoCelda = document.createTextNode("Texto de ejemplo (en la versión final varía según la celda, en función de condiciones y demás)");
//trozo problemático de código
celda.addEventListener("click",function(){celda_click(celda.innerHTML);},false);
//resto de código
celda.appendChild(textoCelda);
celda.setAttribute("class","calendario_celda");
fila.appendChild(celda);
}
tblBody.appendChild(fila);
}
}
function celda_click(str){
alert("Evento"+str);
}
Pues bien, con este código lo que quiero es que al hacer click en una celda especifica, se mande el contenido de esa celda como parámetro a la función celda_click(str). Pero el trozo de "celda.addEventListener" no termina de funcionarme, porque aunque la llamada a la función se realiza y se ejecuta la alerta, no consigo que se pase el contenido de la celda como parámetro. He probado con celda.innerHTML, textContent, con textoCelda, con TextoCelda.nodeValue... pero no lo consigo. Si en cambio llamado a la función escribiendo: "celda.addEventListener("click",function(){celda_click("Texto de prueba");},false);" entonces la cadena de texto sí se muestra en la alerta, pero eso no me sirve

Si alguién me ilumina se lo agradezco, que me he atascado en este punto y no puedo continuar con mi desarrollo.