我试图用history.js实现历史api,我将使用以下教程进入本主题:
我按照描述完成了所有操作,但是当我点击我网站上的链接时,它会抛出跟踪错误:
script.js:12 Uncaught TypeError:无法读取属性' bind'未定义的
您是否知道我需要如何更改它以便它有效?我做错了什么?
我使用jquery,history.js和教程中的custom.js文件,如下所示:
var $wrap = $( "#wrap" );
$wrap.on( "click", ".page-link", function( event ) {
event.preventDefault();
if ( window.location === this.href ) {
return;
}
var pageTitle = ( this.title ) ? this.title : this.textContent;
pageTitle = ( this.getAttribute( "rel" ) === "home" ) ? pageTitle : pageTitle + " — Acme";
History.pushState( null, pageTitle, this.href );
} );
History.Adapter.bind( window, "statechange", function() {
var state = History.getState();
$.get( state.url, function( res ) {
$.each( $( res ), function( index, elem ) {
if ( $wrap.selector !== "#" + elem.id ) {
return;
}
$wrap.html( $( elem ).html() );
} );
} );
} );

提前致谢,我希望你能帮助我:(
答案 0 :(得分:0)
History.js的文档建议确保您在IIFE(立即调用的函数表达式)中加载代码:
(function(window,undefined){
// Code here
})(window);

来源:https://github.com/browserstate/history.js/(参见"直接安装"部分)
除此之外,请确保您的脚本按您列出的顺序加载:jQuery,history.js,custom.js。我假设您的代码位于custom.js中,并且不在页面上(如果是,那么这是完全不同的事情)。