La fonction jquery .click ne fonctionne pas sur la balise <td>?

Je crée donc une table à l'aide de javascript et de jquery, et je le souhaite de sorte que lorsque vous cliquez sur les Td sur la première ligne de la table, le reste des Td de cette colonne est déroulé. Permettez-moi d'essayer de l'expliquer en montrant mon code. Voici mon javascript

function createTr (heights) { //heights is just an array of words for (var h=0; h<heights.length; h++) { var theTr = $("<tr>", { id: "rowNumber" + h}); for (var i=0; i<heights.length-3; i++) { theTr.append($("<td>", { "class": "row"+h + " column"+i, html: heights[h][i] })); } $('#newTable').append(theTr); // append <tr id='rowNumber0'> to the table (#newTable), which is written in the html } } 

Cela crée essentiellement des Td et chaque td est similaire à ce format

 <td class="rowh columni"> 

Je le veux afin que tous les td soient masqués, sauf pour les td dans .row0 et si vous cliquez sur le td dans .row0 .columni, alors tous les td dans .columni apparaissent. Le paramètre «hauteurs» est jsut un tableau, par exemple, il peut être

 var heights = [['headerOne', 'headerTwo'], ['someTd', 'anotherTd'],]; 

Et il créerait une table utilisant ces mots, headerOne et headerTwo serait dans la première rangée, certainsTd et anotherTd seraient dans la deuxième ligne.

Maintenant, lorsque j'essaie d'ajouter une fonction de clic comme

 function animation() { $('td').click( function() { alert('clicked'); }); } 

Et puis l'appeler dans mon document.

 $(document).ready( function() { createTr(heights); animation(); }); 

Il ne fait rien lorsque je clique sur un td. Comment venir?

http://api.jquery.com/on/

Puisque vous créez les éléments après la création du DOM. Utilisez le sélecteur "on" pour obtenir l'élément précis qui est créé dynamiquement.

À partir de l'URL:

  $("#newTable").on("click", "td", function() { alert($( this ).text()); }); 

Essayez comme ceci:

 $('body').on('click','td', function() { alert('clicked'); }); 

essaye ça

 function animation() { $(document).on('click','td',function() { alert('clicked'); }); } 

Ce code fonctionne très bien:

 $(document).ready(function(){ $("td").click(function(){ if(this.title!=""){ alert(this.title); } }); });