Weno, buscando un poco he encontrado la solución óptima, se trata de aplicar el concepto de delegación de eventos
(event delegation). Para mi caso en concreto, la respuesta del servidor a una acción de actualización de una tabla es un fragmento html que contiene los tr del tbody de la tabla, por tanto para que el evento asociado a las etiquetas
a inlcuidas en las filas de la tabla se mantenga, se puede hacer de la siguiente manera:
Código:
$('#tablaDatos tbody').on('click', '.lnkEliminarRegistro', function(e){
e.preventDefault();
var url = $(this).attr('href');
$.ajax({
'datatypes': 'html',
'type': 'GET',
'url': url,
beforeSend: function() {
$('#indicador').addClass('cargando-satisfactorio').fadeIn('fast');
}
}).done(function(data) {
}).fail(function(jqXHR) {
$('#indicador').removeClass('cargando-satisfactorio').addClass('cargando-error').html(jqXHR.responseText);
}).always(function(jqXHR, status) {
if (status !== 'success') {
$('#indicador').fadeOut(5500, function() {
$(this).removeClass('cargando-error').html("<span class='glyphicon glyphicon-time'></span> Cargando...");
});
} else {
$('#indicador').fadeOut('fast', function() {
$(this).removeClass('cargando-error').html("<span class='glyphicon glyphicon-time'></span> Cargando...");
});
}
});
});
de esta manera al refrescar el contenido del tbody, se mantiene la asociación del evento.