jQuery禁用链接直到页面加载

时间:2010-11-24 12:34:30

标签: javascript jquery

我有一个附加到链接的jquery弹出窗口。如果在单击链接时页面未完全加载(即.js文件),则会在浏览器窗口中打开而不是弹出窗口。

我想在页面加载之前禁用/隐藏链接。

处理此场景的最佳做法是什么,并为您提供代码示例?

4 个答案:

答案 0 :(得分:5)

首先将你的链接放在div部分并使该div隐藏

<div style='display:none' id='LinkId'><a href=''>click</a></div>

现在在头部

中编写此代码
<script language="javascript">

$(document).ready(function() {
    $('#LinkId').show();
});

</script>

答案 1 :(得分:1)

实际上这是恕我直言,这是一个完美的例子,为什么直接在HTML代码中分配事件处理程序并不一定是坏事,尽管很多人都说。

如果您使用<a href="" onclick="myClickHandler()">Link</a>,则链接的可见性与您可以使用它的时间之间没有差距。它提高了可用性,因为用户无需等待您的页面完全加载,并且在他看到它的那一刻仍然使用链接。

答案 2 :(得分:0)

我有同样的问题,这就是我如何解决它。

除了我的真实链接之外,我还必须创建一个虚拟链接,即

<!--fake link is visible by default-->
<li class="li_1">
<a class="dropdown-toggle" href="my_real_link_not_popup.html">Compose</a>
</li>

<!--original link is hidden with the hidden class by default-->
 <li class="li_2 hidden">
 <a class="dropdown-toggle ajax-popup-link_write" id="write_main_a" href="my_real_link_is_popup.html">Compose</a>
 </li>

我的剧本如此:

$(document).ready(function()
{
    //prevent event from being fired before page load
    $(".li_1").addClass("hidden");
    $(".li_2").removeClass("hidden");
});

所以页面加载了假链接和onpage load == "finish",然后隐藏了虚假链接,并使真实链接可见。

唯一的缺点是用户必须始终在其浏览器中启用java脚本,否则他们将无法访问弹出窗口。但从好的方面来看,假链接仍然可以重定向到与弹出窗口具有相同内容的另一个页面。 眨眼

希望这会有所帮助

答案 3 :(得分:-1)

我遇到了类似的问题,其中链接的href正在被服务器填充,而href在页面加载之前被修改为us / en或/ de / de在url之前,

因此,如果我们在页面完全加载之前单击链接,它将转到不完整的URL,因此我会找不到页面。

我采取的解决方案是: 添加onclick =&#34; event.preventDefault()&#34;尽快从客户端,然后将其修改为onclick =&#34;&#34;随着网址的更新。

所以问题得到解决,当网址不完整时,点击没有发生。