Prevent page reload after ajax form submission

To solve this, you need to unbind the event that triggers the second AJAX request. You need to make sure that your unbind() function is called after the event binding has occurred.

So why not just load it in the footer? One reason is that the other script that binds the event might be loading in the footer, too.

To control the loading order of scripts, you can actually use the dependencies parameter of wp_enqueue_scripts(). You just need to know the handler of the script that you wish do add as a dependency:

wp_enqueue_script( 'my-handler', 'script.js', array( 'another-script-handler' ) );

my-handler is now depending upon and is therefore loaded after another-script-handler.