我有一个带有一些链接的网页,我需要通过jQuery拦截链接点击事件。任务完成得很好,但随后出现问题:如果用户在javascript未完成加载时单击链接,则链接到另一个页面(这是一个错误)。
我试图找到一种方法在页面加载完成之前禁用链接点击,但现在最好的解决方案是我必须将onclick="return false;"
添加到我的链接中,这不是很优雅。有没有更好的解决方案?
感谢您的帮助,
答案 0 :(得分:5)
您可以尝试使用初始化脚本:
<script language="javascript">
var loaded = false;
function SetLoaded() { loaded = true; }
window.onload = SetLoaded;
</script>
然后您可以将onclick="return loaded;"
添加到您的href中。由于加载在页面加载之前不会成立,因此应禁用添加此链接的任何链接。
答案 1 :(得分:3)
今天我遇到了这个问题所以我做了R&amp; D并想出了另一种方式。 在页面加载后,document.readyState将“完成”,因此您可以检查其值,如。
if(document.readyState=='complete')
{
//// call script or do anything which you want to do.
}
答案 2 :(得分:1)
让jQuery在document.ready()中的链接中设置href。也许在你的链接前加上'#',并让jQuery去除它们。
答案 3 :(得分:0)
这是我已经解决的一个解决方案:使用放在链接前面的掩码来防止点击事件。
<div class="LinkMasker"></div>
.LinkMasker {
position: absolute;
z-index: 999;
width: ...px;
height: ...px;
}
页面加载后&amp;我的活动都已注册,我删除了掩码:
$('.LinkMasker').remove();