jQuery Ajax加载无法正常工作

时间:2012-10-13 03:27:07

标签: javascript jquery ajax

这是我的代码:

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加载调用以获取内容。我无法让这个简单的代码工作。如果有人可以指导我朝着正确的方向前进,我会很感激。感谢。

2 个答案:

答案 0 :(得分:1)

尝试以下方法:

window.onhashchange = function () {
    $('#result').load('test2.html', function(){
        alert('Load was performed.');
    });
};

答案 1 :(得分:0)

两件事:

  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.');
          });
        });
      });​
      
    4. 小提琴:http://jsfiddle.net/2BrUG/