2010-12-14 5 views
16

Mam zdarzenie keydown, którego używam do dodawania pustego wiersza do tabeli. Ale chcę tylko dodać nowy wiersz, jeśli zdarzenie keydown ma miejsce, gdy kursor znajduje się w ostatnim wierszu tabeli.Jak sprawdzić, czy aktualnie znajdujesz się w ostatnim wierszu tabeli HTML?

To jest moje bieżące wydarzenie jQuery. .glCreditValue to klasa wejściowego pola tekstowego, który znajduje się w ostatnim TD wiersza tabeli. Gdy użytkownik wyjdzie z tego wejścia, JEŻELI TD, w którym znajduje się wejście, znajduje się w ostatnim wierszu tabeli, chcę dodać nowy wiersz.

Ponieważ dane tabeli są generowane dynamicznie, ostateczny TD każdego wiersza ma pole tekstowe wejściowe z klasą .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(); 
     } 
    }); 

Próbuję skorzystać z selektora tr: last, ale nie jestem pewien, skąd się wybrać.

+0

Chcesz obsługiwać kliknięcia na całym ostatnim rzędzie, lub po prostu ostatniej kolumnie ostatnim rzędzie? – Emmett

+0

Tylko ostatnia kolumna, dlatego właśnie określam tylko .glCreditValue keydown. Tylko pola tekstowe wejściowe w końcowych jednostkach TD każdego wiersza mają przypisaną do nich klasę. –

Odpowiedz

29

Istnieje kilka sposobów, aby to zrobić, na przykład można sprawdzić .closest() rodzica <tr> i zobacz czy .is():last-child, tak:

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

To załatwiło sprawę! Dzięki! "Zaakceptuję" to jako moją odpowiedź za około 6 minut, kiedy mi pozwoli, haha. –

+0

@Michael - witaj :) –

+0

@Nick Hate, aby pogłębić starsze pytanie, ale czy byłoby użyteczne/wskazane, aby dodać zaznaczenie klawisza Shift do warunkowego? To zapobiegnie uruchamianiu warunkowego "tab-left", nie? Niesamowita odpowiedź, niezależnie od ...:] –