2

そのため、外部ファイルからデータを取得し、このデータで div を埋める onClick イベントとのリンクがいくつかあるページがあります。これは意図したとおりに機能します。ただし、ページを更新すると、div が再び空になります。私がしたいのは、更新後、div が最後に取得したコンテンツを維持することです。

私はクッキーの道をたどりたくないので、URLにデータを追加することを検討しましたが、これは私がこれをやりたい方法だと思います.

リンクがクリックされたときに url にデータを追加し、更新時に必要なコンテンツを div に復元できる素敵な JQuery 呼び出しはありますか?

私のloadContent関数は次のとおりです。

function loadContent (url, container) {
    var target = $(container);
    target.load(url, function (text, statusText) {
        if (statusText === "success") {
            target.find("a[rel^='gridnav']").initgn();
        }   
    });
}

編集:言及するのを忘れていました、行

target.find("a[rel^='gridnav']").initgn();

ロードされた新しいコンテンツでスクリプトを再初期化するために使用されます。

リンクをクリックすると、onClick イベントが次のような関数を呼び出します。

<a href="#" onClick="loadContent('xyz.html', '#right')">TEST</a></li>

xyz.htmlには、div「#right」内に必要なデータのみが含まれています

私がやりたいことをするためにこの関数を編集する方法はありますか?

4

4 に答える 4

0

を使用して、URL にデータを追加できます。

window.location.hash

https://developer.mozilla.org/en-US/docs/DOM/window.location

jQuery プラグインで QueryString を検索すると、このタスクを簡素化するプラグインが多数あるはずです。

于 2012-08-17T15:24:46.780 に答える
0

localStorage を使用します。クッキーに似ていますが、維持するのははるかに簡単です。唯一の欠点は、すべてのレガシー ブラウザーでサポートされているわけではないことです (ブラウザーのサポートについては、 http://caniuse.com/#search=localStorageを参照してください)。機能の詳細については、 https: //developer.mozilla.org/en-US/docs/DOM/Storage を参照してください。Cookieのような機能をまったく使用しない場合。それなら、私の知る限り、サーバー側で行う必要があります

于 2012-08-17T15:25:01.230 に答える
0

Cookie がないと、作業が少し難しくなります。しかし、私はあなたのために2つの解決策を持っているかもしれません:

  1. サーバー上のセッションを使用すると、どの ajax が呼び出されたかを制御できるため、次にメイン ページが読み込まれたときに新しいコンテンツを追加できます。
  2. URL ハッシュを使用して ajax アンカーを追加するとクリックされ#anchornameたので、リロード後にクリックすることができます。
于 2012-08-17T15:26:03.300 に答える
0

コメントは、ページをロードせずに URL を変更する方法を示しています。あなたはそれを使うことができます。古いブラウザで作業する必要がある場合でも、フラグメントを使用できます (または両方を実行できます)。

これを管理する jQuery/JavaScript 用の履歴プラグインがいくつかあります。これは「ディープ リンク」と呼ばれる手法です。シンプルで使いやすいものが見つかるかもしれません。基本的に、loadContent実行時に から/whateverへの URL を更新し/whatever#rightて、load-content ID などを示すフラグメントを使用する必要があります。

別の代替手段は、ページが最初にロードされるときにそのdivにロードされるサーバーにフラグを設定することです。これにより、ajaxリクエストも節約できます。ただし、サーバーコードの設定方法によっては、機能しない場合があります。

于 2012-08-17T15:27:22.163 に答える