2011-09-23 53 views
5

Pude hacer que las filas de mi tabla fueran clicables y vinculadas al href en el. Sin embargo, comencé a tener problemas cuando hice que el selector solo seleccionara las filas, excepto la última columna.jquery haciendo que la fila se pueda hacer clic a excepción de la última columna

Con el siguiente código, la fila en la que se puede hacer clic solo está activa para toda la fila excepto la última, que es lo que necesito ya que tengo enlaces administrativos en esta celda (enlaces para activar, editar, eliminar, etc.). El único problema es que no importa en qué fila haga clic, lo envía al enlace en la fila superior. Creo que esto tiene algo que ver con mi selector para el hallazgo ('td a') pero no puedo resolverlo.

$('#dataTable tr td:not(:last-child)').click(function() { 
location.href = $('#dataTable tr').find('td a').attr('href'); 
}); 

El desplazamiento funciona muy bien y solo cambia el puntero si el mouse está sobre cualquier celda excepto la última columna.

$('#dataTable tr td:not(:last-child)').hover(function() { 
$(this).css('cursor','pointer'); 
    }, function() { 
    $(this).css('cursor','auto'); 
}); 

Respuesta

10

Es debido a que está recibiendo todos los años pa en la mesa y luego el primer anclaje que se encuentra será devuelto, trate de cambiar de esta manera:

$('#dataTable tr td:not(:last-child)').click(function() { 
location.href = $(this).parent().find('td a').attr('href'); 
}); 

lo que significa es que se obtener el elemento click $ (this) como un objeto jquery, y luego ir a su padre. (el elemento fila).

+0

Muchas gracias. He intentado que esto funcione toda la noche. Soy nuevo en jquery y pensé que estaba tomando todos los tr, simplemente no pude encontrar la manera de cambiarlo. ¡Gracias de nuevo! – Andrew

1
$('#dataTable tr td:not(:last-child)').click(function() { 
location.href = $(this).parent().find('td a').attr('href'); 
}); 

Creo que esto debería funcionar. Su código siempre toma el href de la primera "td a" que encuentra dentro de su dataTable. Este código toma el que encuentra en la td específica que está buscando.

Cuestiones relacionadas