Cita: var onclick_previo = new Function($('.cancelar').attr('onclick'));
Me parece que estas usando una sintaxis que es muy dura, cuando jquery es mas sencillo. En lo que te marco, estas usando "new" para generar un "objeto function". Pero no estas almacenando el evento anterior. Lo estas generando, vacio, en el mejor de los casos (aunque en verdad, onclick no sea un atributo para los tags html).