Does jQuery .on("click") always run before <a> href fires?
Yes, your handler will run always first. That's what allows you, for instance, to cancel default behavior (navigate to href url) if necessary
$("a").on("click", function (e) {
e.preventDefault(); // --> if this handle didn't run first, this wouldn't work
doSomething();
});
Yes it does. If you don't want the href to fire you can call e.preventDefault();
and the browser won't follow the link.