Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

147
Views
Uso de Javascript para incrustar un evento onClick en un div HTML

Estoy tratando de hacer una cuadrícula interactuable y configurable usando divs como sus celdas.

Para dar un poco de contexto en esta parte del código, básicamente estoy repitiendo td's en la salida HTML y luego agregando una cantidad específica de divs en td's/rows (cellID es solo un método para decorar los nombres de div);

 var table, row, div; table = document.createElement('table'); for (var i=0; i < rows; i++) { row = document.createElement('td'); row.id = "row-" + i; for (var j=0; j < cols; j++) { div = document.createElement('div'); div.id = cellID(i, j); row.append(div); } table.append(row); }

Digamos que: -rows = 4 y -cols = 2 | El resultado de salida en el extremo del usuario sería este:

Ejemplo de lo que se mostraría para una cuadrícula de 2x4

Ahora, mi problema actual que estoy tratando de resolver es cómo hacer que cada div repetido reciba el evento onClick () para que ocurra un evento cuando haga clic en los cuadros, esto es lo que intenté para que esto funcione:

  1. div.addEventListener("clic", nulo); //Esta parte no funcionó para mí, aunque para ser honesto, realmente no sé con qué reemplazar el nulo
  2. div.getElementById(div.id).onclick = function() { OnClick() }; (OnClick es un método de prueba para ver si funciona, sin embargo, este simplemente rechaza un error y dice que "div.getElementById" no es una función, así que no sé qué pasa con eso).

Estas cosas que probé fueron todas las cosas que se habían recomendado en todo momento, pero no sé qué más podría hacer que funcione.

¿Cuál crees que puede ser el problema allí?

 -
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

div.addEventListener() debería funcionar.

Pero necesita crear una estructura DOM válida. Las filas son tr , las celdas son td . Puede poner el div en el td , o simplemente usar el td directamente.

 let rows = 2, cols = 4; var table, row, div; table = document.createElement('table'); for (var i = 0; i < rows; i++) { row = document.createElement('tr'); row.id = "row-" + i; for (var j = 0; j < cols; j++) { let cell = document.createElement("td"); div = document.createElement('div'); div.id = cellID(i, j); div.addEventListener("click", function() { console.log('Clicked on', this.id); }); div.innerText = div.id; cell.append(div); row.append(cell); } table.append(row); } document.body.appendChild(table); function cellID(i, j) { return `cell-${i}-${j}`; }

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!