Spero che qualcuno possa consigliare. Problemi durante il tentativo di rimuovere una riga dopo aver fatto clic su un collegamento.jQuery selezione TR più vicina
HTML
<table>
<tr><td>Some Data</td><td><a href="#" class="remove-row>Remove Row</a></td></tr>
<tr><td>Some Data</td><td><a href="#" class="remove-row">Remove Row</a></td></tr>
</table>
Ora il JS
$("a.remove-row").live('click', function(eve){
eve.preventDefault();
$.ajax({
type: 'GET',
url: '/someaction/',
dataType: 'json',
success: function(msg){
if(msg.error){
alert(msg.error);
}else{
$(this).closest('tr').remove();
alert(msg.success);
}
}
})
});
Questo dovrebbe essere semplice reale senza ma la sua non è la rimozione della fila. Solo per calci se lo cambio a qualcosa come
$('.remove-row').addClass('foo');
Aggiungerà foo a tutte le righe della tabella. Così può capire perché non rimuove la riga più vicina.
Qualsiasi idea?
Grazie in anticipo.
Nick - piccola correzione. Nel 'successo:' callback, 'this' si riferisce all'oggetto' xhr', non 'window'. http://jsfiddle.net/WzeAh/ * Questo, ovviamente, non ha rilevanza per quanto riguarda la soluzione proposta. * +1 – user113716
@patrick - Scusa, chiarirò un po 'di più nella risposta, si * si comporta * come 'window' per l'uso corrente, ad es '$ (this) .find (selector)' funziona come se '$ (this)' fosse '$ (window)' o '$ (document)'. –
Nick - A meno che non abbia frainteso il tuo chiarimento, non sembra (all'interno del callback) come se '$ (this)' ti dà lo stesso comportamento di '$ (document)', poiché facendo un '.find()' restituisce Partite '0'. http://jsfiddle.net/WzeAh/1/ EDIT: '$ (window)' dà anche un risultato '0'. – user113716