2012-02-28 23 views
0

私は例えば、私はこのコードを持っている、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

+0

jQuery/ajaxを使用してクッキー/セッションを設定し、サーバーサイドコードを使用して、クッキーがある場合は条件付きでロードして同じものをロードします。コンテンツにajaxがロードされるとすぐにCookieが設定されると、ユーザーはページをリロードし、サーバーはページの読み込み時にコンテンツを読み込みます。 –

答えて

2

あなたがこれを検出するためのURLにハッシュタグを使用することができます。

まず、ajaxリクエストを関数に入れ、次の2つの場合にこの関数を呼び出します。a)ユーザーがリンクをクリックしたとき。 b)ハッシュタグが "#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

ありがとうございます:) –

0

クリックハンドラー内にreturn false;があることを確認してください。

ので:

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

クリックハンドラからfalseを返すのは、ユーザーがページを再読み込みできないようにすることです。 – villecoder

+0

彼はリンクを '#docs'でページをリフレッシュさせたくないと言っていると思っています。実際のクリックを実行しないので、falseを返すとハンドラのコードだけが実行されません。 – TheDelChop

+0

いいえ。彼は言っています(ここで引用しています) "私はウェブサイトをリロードすると、プレビュー状況に戻ります"。彼は「リンクをクリックすると」とは言わなかった。 – villecoder