2011-09-23 7 views
5

Sono riuscito a far sì che le righe della mia tabella fossero selezionabili e collegate a href nel. Tuttavia ho iniziato ad avere problemi quando ho fatto il selettore selezionare solo le righe tranne l'ultima colonna.jquery che fa clic su una riga tranne l'ultima colonna

Con il codice seguente la riga selezionabile è attiva solo per l'intera riga tranne l'ultima cella che è ciò che richiedo in quanto ho collegamenti amministrativi in ​​questa cella (collegamenti per attivare, modificare, eliminare righe ecc.). L'unico problema è che non importa quale riga si fa clic su di esso ti invia al link nella riga più in alto. Penso che questo abbia qualcosa a che fare con il mio selettore per il find ('td a') ma non riesco a capirlo.

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

Il passaggio del mouse funziona in modo ottimale e modifica il puntatore solo se il mouse si trova su una cella diversa dall'ultima colonna.

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

risposta

10

E 'perché si stanno ottenendo tutti i TR di nella tabella e poi il primo ancoraggio che si trova verrà restituito, prova a cambiare in questo modo:

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

cosa vuol dire è che sarà ottieni l'elemento cliccato $ (this) come oggetto jquery, e poi vai al suo genitore. (l'elemento row).

+0

Grazie mille. Ho cercato di farlo funzionare tutta la notte. Sono nuovo di jquery e ho capito che stavo afferrando tutti i tr, non riuscivo a capire come cambiarlo. Grazie ancora! – Andrew

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

Penso che questo dovrebbe funzionare. Il tuo codice prende sempre l'href dal primo "td a" che trova all'interno del tuo dataTable. Questo codice prende l'a che trova nello specifico td che stai cercando.

Problemi correlati