Nick's approach est très bien, mais je serais probablement utiliser un seul gestionnaire pour la table entière (« délégation d'événement ») via la fonction delegate
, plutôt que des gestionnaires individuels sur chaque bouton, comme ceci:
$('#theTable').delegate("button.shownextrow", "click", function() {
$(this).closest("tr").next("tr").show();
});
Entre autres choses, cela vous permet d'ajouter plus de paires de lignes à la table (et d'enlever des paires de lignes) sans vous soucier de brancher/déverrouiller les gestionnaires d'événements pour eux. L'esprit, il ne nécessite que rien directement dans la hiérarchie entre l'élément button
et l'élément table
clics ... Mange
Voici mon exemple plus qui n'a pas utilisé delegate
, juste à des fins historiques — wow ne delegate
simplifier le code:
$('#theTable').click(function(event) {
var button = $(event.target).closest("button.shownextrow");
if (button.length > 0) {
button.closest("tr").next("tr").show();
}
});
Live example
Comment puis-je également montrer un objet caché dans le tr que je viens de montrer ?? – user342391
@ user342391 - Je ne cacherais rien à l'intérieur ... mais vous pouvez virer sur un '.find ('peu importe'). Show()' après le '.show()' dans l'exemple ci-dessus pour trouver/montrer quelque chose à l'intérieur. –