2

これは私のコードです:

test.html

<html>
  <head>
    <title>test</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js">
    </script>
    <script>
      $(document).ready(function(){
        $(window).bind('hashchange', function(){
          $('#result').load('test2.html', function(){
            alert('Load was performed.');
          });
        });
      });
    </script>
  </head>
<body>
  <a href="#Test1">Test 1</a>
  <a href="#Test2">Test 2</a>
  <div id="result"></div>
</body>
</html>

test2.html

<h3>This is content from test2.html</h3>

変更で window.hash を使用してロードする特定のページを検出したい。たとえば、ユーザーがhttp://localhost/test.html#test2.

ページのメイン コンテナー (結果) は、コンテンツを取得するために test2.html への Ajax ロード呼び出しを実行します。この単純なコードを機能させることができません。誰かが私を正しい方向に導くことができれば幸いです。ありがとう。

4

2 に答える 2

1

以下をお試しください:

window.onhashchange = function () {
    $('#result').load('test2.html', function(){
        alert('Load was performed.');
    });
};
于 2012-10-13T03:38:01.747 に答える
0

2つのこと:

  1. まず、が機能し$(window).bind('hashchange', function(){})ているかどうかを確認します。以下のようなダミーコードを与えてみてください。

    $(window).bind('hashchange', function(){
        alert("Hash changed!");
    });
    
  2. 次に、xdazzが言ったように、JavaScriptとjQueryコードの組み合わせを試してみてください。

    window.onhashchange = function () {
        $('#result').load('test2.html', function(){
            alert('Load was performed.');
        });
    };
    
  3. 変更を取得するだけでなく、更新を取得することもできます。Lemmeはいくつかのことを確認します。

    1. jQueryライブラリをロードしていますか?
    2. サーバー上で実行していますか、それともfile:///プロトコルで呼び出していますか?後者が機能しない場合があります。
    3. 私はあなたが持っているものと同じもので私のローカルサーバーでこのコードを使用しました。わたしにはできる!

      $(document).ready(function(){
        $(window).bind('hashchange', function(){
          $('#result').load('test2.html', function(){
            alert('Load was performed.');
          });
        });
      });​
      

    フィドル: http: //jsfiddle.net/2BrUG/

于 2012-10-13T03:41:39.077 に答える