0

状況は次のとおりです。いくつかのリンクを含む index.php があります。各リンクは、別のページ (nicetry.html など) を取得して div にロードします。読み込まれるこのページ (例: nicetry.html) は、document.ready でいくつかの ajax を起動し、クリック イベントをボタンにバインドする必要があります。(実際には、onclick 関数をいつバインドしても問題ありません)。このボタンは、上記の div のコンテンツを更新する必要があるため、nicetry.html の document.ready がトリガーされます。

コードで...

index.php:

<script>
    $("#nicetry").click(function(){
         $('#content').load('nicetry.html');
    });
</script>
<body>
<div id="nav">
 <ul>
  <li id="home"> <a href="#"> Home </a></li>
  <li id="nicetry"> <a href="#"> nicetry </a></li>
 </ul>
</div>

<div id="content"></div>
</body>

nicetry.html

$(document).ready({

//some stuff

 $("#next").on("click", function() {
   $("#content").load("nicetry.html");
 });
});

これは、「次へ」ボタンを押したときに初めて機能し、div のリロードを停止します。ボタンのIDは変わらないので、キャッシュの問題だと思いました。キャッシュなしのメタタグを追加して、URLに ?val=randomInts を追加しようとしました...何も機能しませんでした。私のやり方が間違っていたのか、それとも実際にはうまくいかなかったのかのどちらかです。

私は最終的に、index.php が document.ready で nicetry.html をロードし、nicetry.html から location.reload(true) を実行するだけの回避策を実装しました。それでも、より良い解決策があるかどうか、またはこれが私が思うように機能しない理由を知りたいです。

4

1 に答える 1

0

なぜそれを理解するのにそんなに時間がかかったのか分かりません。思った通り、自分の狂気と経験不足に巻き込まれすぎていました。

解決策は次のとおりです。 1. かなり新しいバージョンの jQuery を使用していることを確認します。 2. 次のようにインデックスに読み込みをバインドします。

        $(document).on("click", "#next",
            function() {
                    $("#content").load("nicetry.html");
            });

簡単 :)

于 2013-02-16T01:11:43.033 に答える