在页面加载时阻止单击链接

Hoà*_*ong 5 html javascript javascript-events

我有一个带有一些链接的网页,我需要通过jQuery拦截链接点击事件.任务完成得很好,但随后出现问题:如果用户在javascript未完成加载时单击链接,则链接到另一个页面(这是一个错误).

我试图找到一种方法来在页面加载完成之前禁用链接点击,但现在最好的解决方案是我必须添加onclick="return false;"到我的链接中,这不是很优雅.有没有更好的解决方案?

谢谢你的帮助,

Joe*_*ton 5

您可以尝试使用初始化脚本:

<script language="javascript">

var loaded = false;

function SetLoaded() { loaded = true; }

window.onload = SetLoaded;

</script>
Run Code Online (Sandbox Code Playgroud)

然后你可以添加onclick="return loaded;"到你的href.由于加载在页面加载之前不会成立,因此应禁用添加此链接的任何链接.


Hoà*_*ong 0

这是我提出的一个解决方案:使用链接前面的屏蔽器来防止点击事件。

<div class="LinkMasker"></div>

.LinkMasker {
    position: absolute;
    z-index: 999;
    width: ...px;
    height: ...px;
}
Run Code Online (Sandbox Code Playgroud)

页面加载和我的事件全部注册后,我删除了屏蔽器:

$('.LinkMasker').remove();
Run Code Online (Sandbox Code Playgroud)

  • 这很好,但是你需要一个免责声明(我在评论中添加了它)。您的问题/答案不仅是为了您自己,甚至不是主要为了您自己,而是为了未来的访客。 (2认同)