Binding a handler directly to elements binds it to the elements that exist at that moment. Replace the list through Ajax and every handler goes with the old nodes, which is why so many codebases re-bind after every update and slowly accumulate duplicate handlers.
// breaks as soon as .row is replaced
$('.row .delete').on('click', handler);
// survives: the listener lives on the container
$('#orders').on('click', '.delete', handler);
The delegated form attaches one listener to a container that is never replaced, and matches the selector when the event bubbles up. Besides surviving DOM changes it is far cheaper — one listener instead of five hundred. The container should be the nearest stable ancestor rather than document, or every click in the page runs the selector match.