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

两件事情:

  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. 我能够得到更新以及得到改变。让我确认几件事。

    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 回答