我有一个附加到链接的jquery弹出窗口。如果在单击链接时页面未完全加载(即.js文件),则会在浏览器窗口中打开而不是弹出窗口。
我想在页面加载之前禁用/隐藏链接。
处理此场景的最佳做法是什么,并为您提供代码示例?
答案 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;随着网址的更新。
所以问题得到解决,当网址不完整时,点击没有发生。