Jquery Can';我无法让history.js正常工作
我希望我能在history.js插件方面得到一些帮助。我在stackoverflow和github上尝试了很多例子,试图让它工作起来,但我一辈子都做不到 我正在努力实现的目标:Jquery Can';我无法让history.js正常工作,jquery,ajax,html,history.js,Jquery,Ajax,Html,History.js,我希望我能在history.js插件方面得到一些帮助。我在stackoverflow和github上尝试了很多例子,试图让它工作起来,但我一辈子都做不到 我正在努力实现的目标: 我有一个文章列表,其中包含一个用于SEO目的的href链接和一个用于该页面ajax版本的数据属性(如果我可以使用link=canonical,这是否有必要?) 当我点击一篇文章时,一个div向上滑动,内容被加载到其中 URL被更新为“example.com/article/this is The article name
<a href="http://example.com/article/this-is-the-article-name" data-href="http://example.com/article/ajax/this-is-the-article-name" class="ajax-click"></a>
<div id="panel" class="hidden"></div>
我在上面有jQuery库和捆绑的html4+5历史插件。我想知道是否因为我输出的是完整的url,而不是“/article/article name”之类的内容,所以可能会导致问题
任何帮助都将不胜感激,即使只是其中的一部分。谢谢 快速提问,您使用的jQuery版本是什么?(因为
.live
已被弃用)还有,是否存在任何控制台错误?最终改为使用Ben Cherry的PathChange。我唯一能正常工作的图书馆。
$(document).ready(function(){
var History = window.History,
State = History.getState();
// not sure if this was doing anything to prevent clicks $('.ajax-click')[0].onclick = null;
$('.ajax-click').live('click', function(e) {
e.preventDefault();
var path = $(this).attr('data-href');
var title = $(this).attr('title');
History.pushState('ajax',title,path);
if ($('#panel').hasClass('hidden')) {
$('#panel').slideToggle(500);
$('.header').slideToggle(600);
}
});
// Bind to state change
// When the statechange happens, load the appropriate url via ajax
History.Adapter.bind(window,'statechange',function() { // Note: Using statechange instead of popstate
load_ajax_data();
});
function load_ajax_data() {
State = History.getState();
$.post(State.url, function(data) {
$("#panel").html(data);
});
}
});