Donc, je crée une table en utilisant Javascript et jQuery, et je le veux pour que lorsque vous cliquez sur les td de la première ligne de la table, le reste de la td de cette colonne soit déroulé. Laissez-moi 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 pour que tous les td soient masqués à l'exception des td dans .row0 et si vous cliquez sur le td dans .row0. Columni, tous les td dans .columni apparaissent. Le paramètre 'hauteurs' est juste un tableau, par exemple, il peut être
var heights = [['headerOne', 'headerTwo'], ['someTd', 'anotherTd'],];
et il créerait une table en utilisant ces mots, headerOne et headerTwo seraient dans la première ligne, someTd et anotherTd seraient dans la deuxième ligne.
Maintenant, quand j'essaie d'ajouter une fonction de clic comme si
function animation() {
$('td').click( function() {
alert('clicked');
});
}
puis appelez-le dans ma fonction document.ready comme si
$(document).ready( function() {
createTr(heights);
animation();
});
il ne fait rien quand je clique sur un td. Comment venir?
Depuis que 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 créé dynamiquement.
De l'URL:
$("#newTable").on("click", "td", function() {
alert($( this ).text());
});
Essayez comme ça:
$('body').on('click','td', function() {
alert('clicked');
});
essaye ça
function animation() {
$(document).on('click','td',function() {
alert('clicked');
});
}
J'aime ça.-
$("#table tr").click(function(){
console.log(this);
});
Ce code fonctionne très bien:
$(document).ready(function(){
$("td").click(function(){
if(this.title!=""){
alert(this.title);
}
});
});