Hola, soy nuevo y empiezo solicitando ayuda, pero no me enrollo y voy al grano:
(El código lo he simplificado lo más que he podido)
Código HTML:
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="js.js"></script>
</head>
<body>
<table id="MiTabla" onload="crea_tabla()">
<tbody></tbody>
</table>
</body>
</html>
Código Javascript
:
Ver originalfunction 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.textContent);},false);
//resto de código
celda.appendChild(textoCelda);
fila.appendChild(celda);
}
tblBody.appendChild(fila);
}
}
function celda_click(str){
alert("Evento"+str);
}
Creo una tabla dinámicamente e intento obtener su contenido al hacer click, creando un evento que llama a
celda_click en cada celda.
El evento se lanza pero no consigo que se envíe como parámetro el contenido de la celda, el texto. Si hago:
Código Javascript
:
Ver originalcelda.addEventListener("click",function(){celda_click("Texto de prueba");},false);
Puedo comprobar que el "Texto de prueba" sí se manda ya que al hacer click se muestra la alerta "EventoTexto de prueba".
Incluso si antes de crear el
eventListener ejecuto un "
alert(celda.textContent)" me muestra bien el dato, algo se me escapa ya que no entiendo por qué al hacer click no funciona.
Si alguién tiene algo que me pueda ayudar, aunque sea otra forma de hacer lo que busco... pues se lo agradezco