如何防止页面重新加载?

问题描述:

我有jQuery的问题,例如,我有这样的代码:如何防止页面重新加载?

<a href="#" id="docs"><img id="icon" src="icons/docs.png"/></a> 

$("#docs").click(function() { 
$("#content").load("docs.php").hide().fadeIn("slow");}) 

所有的东西工作正常,但,当我重新载入追溯到预览情况的网站,但我想要的网站仍然像点击链接时一样。

+0

你不能,但你可以警告用户不好的事情会发生。 http://stackoverflow.com/questions/3221161/how-to-pop-up-an-alert-box-when-the-browsers-refresh-button-is-clicked – asawyer 2012-02-28 21:53:29

+0

有可能你可以使用jQuery/ajax来设置一个cookie /会话,然后使用服务器端代码来有条件地加载ajax加载的相同内容,如果cookie存在的话。如果一旦用Ajax加载内容就设置cookie,则用户可以重新加载页面,并且服务器将在加载页面时加载内容。 – 2012-02-29 00:34:56

您可以使用#标签的URL来检测这一点。

首先,把你的ajax请求放在一个函数中,然后在两种情况下调用这个函数:a)当用户点击链接时; b)如果hashtag是“#load_docs”。

$(document).ready(function() { 
    function load_contents() { 
     $("#content").load("docs.php").hide().fadeIn("slow"); 
    } 

    $("#docs").click(function() { 
     load_contents(); 
    }); 

    var hashtag = window.location.hash; 
    if (hashtag == "#load_docs") load_contents(); 

});  

不要忘记添加href="#load_docs"你的链接:

<a href="#load_docs" id="docs"><img id="icon" src="icons/docs.png"/></a> 
+0

谢谢你这个作品:) – 2012-02-29 06:26:19

只要确保你在return false;里面点击处理程序。

所以:

$("#docs").click(function() { 
    $("#content").load("docs.php").hide().fadeIn("slow"); 
    return false; 
}) 
+1

从点击处理程序返回false是否与防止用户重新加载页面有关? – villecoder 2012-02-28 21:56:20

+0

我想他是说他不希望链接'#docs'刷新页面,返回false将防止发生,因为它不会执行实际的点击,只是处理程序中的代码。 – TheDelChop 2012-02-28 21:58:39

+0

编号他在说(引用此处)“当我重新加载网站时,它会回到预览状态”。他没有说“当我点击链接”。 – villecoder 2012-02-28 22:00:18