Всегда ли работает jQuery.on("click") до срабатывания <a>href?

$("a").on("click", function (e) {
    doSomething();
});
...
<a href="#" onclick="location.href='http://website.com'; return false;">My Link</a>

Будет ли doSomething() всегда запускаться до "href" в каждом браузере?

Ответы

Ответ 1

Да, ваш обработчик будет работать всегда первым. Это позволяет вам, например, отменить поведение по умолчанию (перейдите к href url) при необходимости

$("a").on("click", function (e) {
   e.preventDefault(); // --> if this handle didn't run first, this wouldn't work
   doSomething();
});

Ответ 2

Да, да. Если вы не хотите, чтобы href запускался, вы можете вызвать e.preventDefault();, и браузер не будет следовать ссылке.