2010-12-14 39 views
16

Tengo un evento de selección que estoy usando para agregar una fila en blanco a una tabla. Pero solo quiero que se agregue la nueva fila si el evento de selección ocurre cuando el cursor está en la última fila de la tabla.¿Cómo saber si actualmente se encuentra en la última fila de una tabla HTML?

Este es mi evento jQuery actual. .glCreditValue es la clase de un cuadro de texto de entrada que reside en el último TD de la fila de la tabla. Así que cuando el usuario saca pestañas de esa entrada, SI el TD en el que está la entrada está en la última fila de la tabla, quiero agregar una nueva fila.

Como los datos de la tabla se generan dinámicamente, el TD final de cada fila tiene un cuadro de texto de entrada con la clase .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(); 
     } 
    }); 

Estoy tratando de hacer uso del tr: último selector, pero no estoy seguro de dónde ir desde aquí.

+0

¿Desea manejar los clics en toda la última fila, o solo en la última columna de la última fila? – Emmett

+0

Solo la última columna, por lo que estoy especificando solo ese .glCreditValue keydown. Solo las cajas de texto de entrada en los TD finales de cada fila tienen esa clase asignada. –

Respuesta

29

Hay algunas maneras de hacer esto, por ejemplo, se puede comprobar la .closest() padre <tr> y ver si .is() un :last-child, así:

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

¡Eso hizo el truco! ¡Gracias! Voy a 'aceptar' eso como mi respuesta en unos 6 minutos cuando me lo permita, jaja. –

+0

@Michael - welcome :) –

+0

@Nick Hate para descifrar una pregunta anterior, pero ¿sería útil/aconsejable agregar un cheque para la tecla shift para el condicional? Eso evitaría que un "tab-left" active el condicional, ¿no? Respuesta impresionante, independientemente ...:] –

Cuestiones relacionadas