Jquery 让history.js在没有Ajax加载页面的情况下工作
我不知道为什么这不起作用,我一直在尝试一切 大多数在线教程都在使用Ajax,我并不这么认为,我也尝试过对其进行调整,但没有任何效果。我使用的是has bang URL,所有内容都加载在索引页面中,只是动态显示和隐藏。我真的需要一些帮助来让历史发挥作用 这是我的剧本Jquery 让history.js在没有Ajax加载页面的情况下工作,jquery,history.js,Jquery,History.js,我不知道为什么这不起作用,我一直在尝试一切 大多数在线教程都在使用Ajax,我并不这么认为,我也尝试过对其进行调整,但没有任何效果。我使用的是has bang URL,所有内容都加载在索引页面中,只是动态显示和隐藏。我真的需要一些帮助来让历史发挥作用 这是我的剧本 History.Adapter.bind(window, 'statechange', handleStateChange); $('nav a').on('click',function(e) { var target =
History.Adapter.bind(window, 'statechange', handleStateChange);
$('nav a').on('click',function(e) {
var target = $(this).attr('href');
History.pushState(null, null, target);
});
function handleStateChange() {
alert("State changed...");
}
如果我可以让警报发生,我可以从那里开始,但警报永远不会触发,我不知道为什么。只需在绑定事件之前定义您的函数,方法如下:
function handleStateChange() {
alert("State changed...");
}
History.Adapter.bind(window, 'statechange', handleStateChange);
$('nav a').on('click',function(e) {
var target = $(this).attr('href');
History.pushState(null, null, target);
});
或者像我通常喜欢做的那样,在绑定中定义函数,当然,如果您以后不需要在脚本中使用相同的函数
History.Adapter.bind(window, 'statechange', function() {
alert("State changed...");
});
$('nav a').on('click',function(e) {
var target = $(this).attr('href');
History.pushState(null, null, target);
});
我认为“$('nava')”是您发布的代码中的一个输入错误,应该是:
....
$('#nav a').on('click',function(e) {
var target = $(this).attr('href');
....
在本文中,我假设您希望使用带有“nav”作为id属性的标记div以及其中的一些链接
希望有帮助。元素是一个新的HTML5标记,在本例中不是一个打字错误:)我不知道这个新标记。。。因此,如果你把它当作'div'或'p'或任何其他标记,我假设:$('nav')。find('a')是编码它的正确方法……嗨,麦克,我有一个类似的问题。如果我在一个页面中使用它,比如:a.html?state=1和a.html?state=2,那么脚本就可以正常工作。但是,我在两个页面中使用History.js,例如:a.html和b.html。所以,它不能运行。请帮我回答这个问题: