2010-12-14 41 views
16

J'ai un événement keydown que j'utilise pour ajouter une ligne vide à une table. Mais je veux seulement que la nouvelle rangée soit ajoutée si l'événement de keydown se produit quand le curseur est dans la dernière rangée de la table.Comment savoir si vous êtes actuellement dans la dernière rangée d'un tableau HTML?

Ceci est mon événement jQuery actuel. .glCreditValue est la classe d'une zone de texte d'entrée qui réside dans le dernier TD de la ligne du tableau. Donc, lorsque l'utilisateur tabule sur cette entrée, SI le TD à l'intérieur de l'entrée est dans la dernière rangée de la table, je veux ajouter une nouvelle ligne. Etant donné que les données de la table sont générées dynamiquement, la TD finale finale de chaque ligne a une zone de saisie avec la classe .glCreditValue.

$(".glCreditValue").keydown(function(event) { 
     var keycode = event.keyCode; 
     if (keycode == 9) { 
      //HERE i would like to make sure that i'm in the last row of the table 
      AddNewRow(); 
     } 
    }); 

Je suis en train d'utiliser le tr: dernier sélecteur, mais je ne suis pas sûr tout à fait où aller d'ici.

+0

Souhaitez-vous gérer les clics sur l'ensemble de la dernière ligne ou sur la dernière colonne de la dernière rangée? – Emmett

+0

Juste la dernière colonne, c'est pourquoi je ne spécifie que ce .glCreditValue keydown. Seules les zones de saisie dans les TD finaux de chaque ligne ont cette classe qui leur est affectée. –

Répondre

29

Il y a quelques façons de le faire, par exemple, vous pouvez vérifier le parent .closest()<tr> et voir si elle .is() un :last-child, comme ceci:

$(".glCreditValue").keydown(function(event) { 
    if (event.which == 9 && $(this).closest("tr").is(":last-child")) { 
     AddNewRow(); 
    } 
}); 
+0

Cela a fait l'affaire! Merci! Je vais 'accepter' cela comme ma réponse dans environ 6 minutes quand ça me le permet, haha. –

+0

@Michael - bienvenue :) –

+0

@Nick Haine de draguer une question plus ancienne, mais serait-il utile/conseillé d'ajouter un chèque pour la touche Maj du conditionnel? Cela empêcherait une "tabulation à gauche" de déclencher le conditionnel, non? Réponse impressionnante, quel que soit ...:] –