$("a").on("click", function (e) {
doSomething();
});
...
<a href="http://website.com">My Link</a>
doSomething()
总是会在每个浏览器中的“href”之前运行吗?
答案 0 :(得分:21)
是的,您的处理程序将始终首先运行。例如,这就是允许您取消默认行为(导航到href url)的必要条件
$("a").on("click", function (e) {
e.preventDefault(); // --> if this handle didn't run first, this wouldn't work
doSomething();
});
答案 1 :(得分:3)
是的。如果您不想激活href,可以致电e.preventDefault();
,浏览器不会关注该链接。
答案 2 :(得分:1)
是的,但是只有在第一个await
之前运行的部分:
$("a").on("click", async function(e) {
example(); // this will always run
await Promise.resolve();
example3(); // this may not run, as it is after the first `await`, and it is after nagivation
e.preventDefault(); // this does not work, as it is after the first `await`
});