使用Ajax实现JQuery后向/前向function

我一直使用JQuery编写一个网站,将不同的.html文件加载到页面上的内容div中。 当然,这意味着后退和前进按钮在站点内导航没有太大作用。 我做了一些研究,发现了一些像历史一样的选项,甚至发现了关于我的问题的Stack Overflow问题。 不幸的是,我花了两天时间撞到我的键盘,试图让其中一个jquery插件工作。 有人可以帮我实现这些后退/前进启用插件到我的网站吗? 你的帮助将受到人们的赞赏。

提前致谢!

   Toward Maximum Independence        

和我的javascript:

 jQuery.event.add(window, "load", initialize); jQuery.event.add(window, "resize", initialize); function initialize() { $('#header').css({'visibility':'visible'}); var h = $(window).height(); var w = $(window).width(); $('#header').css({'width': w, 'height': w*.190}); $('#nav a').bind("click", selectThis); $('#leftcolumn a').bind("click", selectThis); } function selectThis() { var url='text/' + $(this).attr('id') + '.html'; $('#text').load(url); } 

看起来它应该不那么难,但我想我只是不明白它应该如何工作。 我的内容div被称为“#text”,并且标题中的所有链接都将内容管理到其中。 我已经广泛地尝试了jquery.history和jquery.address,并且无法让它们工作。 再次感谢您的任何建议或帮助,我真的希望有人可以帮助我。

最简单的方法是使用内置的浏览器机制,即更改显示的URL。 如果您通过在URL的末尾添加哈希标记来执行此操作,则不会执行任何导航。 关键步骤是

  1. 更改你的“selectThis”函数来改变哈希值,但不要再做了
  2. 添加一个每100毫秒运行一次的函数,如果哈希值已经改变,则aj你的div。

你可以这样做:

 function selectThis() { window.location.hash = $(this).attr('id'); } var lastUrl; // adding a global variable for short code, ideally you'd find a way to avoid this. $( window.setInterval(function() { var url='text/' + window.location.hash + '.html'; // possibly you have to remove the first character of the hash to make this work... if (lastUrl != url) { lastUrl = url; $('#text').load(url); } }, 100); ); // wrapping this function in the jQuery selector delays setting up the timeout until the page has loaded. 

当您在浏览器中向后/向前单击时,哈希值将会更改,您的页面将在适当的内容中显示。

尝试balupton的jQuery历史 ,根据我的经验,它是最好的,并且是最容易使用的。 它的支持也很棒。