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?
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); } }); });