我有一个jQuery的弹出窗口附加到链接。如果页面未被完全加载(即.js文件),当链接被点击时,它将在浏览器窗口中打开而不是弹出。jQuery禁用链接,直到页面加载
我正在考虑禁用/隐藏链接,直到页面加载。
对于处理这个scenrio最好的做法是什么,并且你有任何代码示例?
我有一个jQuery的弹出窗口附加到链接。如果页面未被完全加载(即.js文件),当链接被点击时,它将在浏览器窗口中打开而不是弹出。jQuery禁用链接,直到页面加载
我正在考虑禁用/隐藏链接,直到页面加载。
对于处理这个scenrio最好的做法是什么,并且你有任何代码示例?
第一名您在DIV部分的链接,使该分区隐藏
<div style='display:none' id='LinkId'><a href=''>click</a></div>
现在写在头部分的代码
<script language="javascript">
$(document).ready(function() {
$('#LinkId').show();
});
</script>
这应该完美。 如果您有时间并希望改善用户体验,而不是隐藏它,则可以将其设置为禁用的元素(使用CSS),并在.ready事件中将其替换为工作链接。真的很简单,用jQuery。 – Nacho 2010-11-24 12:57:06
其实这是恕我直言,一个很好的例子,为什么在直接分配事件处理程序尽管有许多人说,HTML代码并不一定是坏事。
如果您使用的是<a href="" onclick="myClickHandler()">Link</a>
,那么链接的可见性和您可以使用它的时间之间将没有差距。它提高了可用性,因为用户不需要等待页面完全加载,并且在他看到它的那一刻仍然使用该链接。
我也有类似的问题,其中一个链接的href正在由服务器和在href填充页面加载之前进行修改,以美国/ EN或/德/日的URL之前,
因此,如果我们点击在页面完全加载之前的链接上,它会转到不完整的URL,因此我会找不到页面。
因此,我采取的解决方案是: 尽快从客户端添加onclick =“event.preventDefault()”,然后在url更新时将其修改为onclick =“”。
所以这个问题得到解决,当网址不完整,然后点击没有发生。
我有同样的问题,这里是我如何解决它。
我不得不创建另外一个虚拟链接到我真正的链接即
<!--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脚本,否则他们将无法访问弹出窗口。但请注意,虚假链接仍然可以重定向到与弹出窗口内容相同的另一页面。 眼色
希望这有助于
我会建议使用像接受的回答我的问题:http://stackoverflow.com/questions/3461152/progressive-enhancement-and-initial-display-state – Sonny 2010-11-24 14:14:16