What you're doing is deleting the element and creating it again (Don't know why). So it no longer is the same element and your event handler won't work.
In this case, yes, you should use event delegation:
$(document).on('click', ".myElementWithSpecialActionHandler", function(){});
EDIT:
You can use .appendTo() to add it to another place (maybe a hidden div or something). Or you could just appendTo() it to its destination but hide it until you ajax callback fires. I created a little jsfiddle to show you that appendTo() does not remove the event handler: jsfiddle
var divId = '#div2';
$('button').on('click', function() {
$(this).appendTo(divId);
divId = divId == '#div2' ? '#div1' : '#div2';
});
Hope this helps you.