Premetto che mi sto incasinando la vita

Devo creare una tabella editabile, in stile phpMyAdmin per capirci, e sto incasinandomi.
Diciamo che al momento sono arrivato a creare in luogo della cella dove è il dato, tramite un doppio click, un campo di testo col valore della cella dentro.
E fino a qui è facile.
I problemi arrivano al momento di doverlo cancellare e ripristinare la cella, col vecchio valore se non è stato modificato o col nuovo valore una volta modificato.
Ma non riesco a capire come intercettare un click fuori dal campo di edit.
Ho provato con $('...campo...').on('click unblur', .... oppure con muoseleave al posto di unblur ma nulla.
Così ho provato a inserire due tasti dentro la cella modificata (orrore) i quali punto alla funzione cancella() ma niente, non vedono la funzione.

Il campo di edit viene creato dinamicamente
codice:
 $('table tbody tr td span').on('click', function(){
var txt = $(this).text();
var input = '<input type="text" name="edit" value="' + txt + '">';
$(this).closest('span').html(input);
});
Ovviamente questa è la versione semplice, senza tasti ulteriori, quella che in realtà mi interessa realizzare, dato che non prevede altri elementi creati dinamicamente.
Ho provato a guardare il codice nella pagina di phpMyAdmin...
Quindi al momento sono arenato.