我正在处理一个页面应用程序,其中每个部分都通过ajax加载。主页是它自己的网页,然后你点击“关于”,它带你到单一页面的应用程序。我已经获得了每个部分的url和浏览器上的后退和转发按钮来处理这个片段:
$('.down-button').on('click', function() {
var stateObj = { principles: "about-principles" };
history.pushState(stateObj, null, "about-principles");
$('#principles-wrap').scrollintoview({ duration: 1000 });
});然而,当您单击所有返回主页,主页不刷新,您仍然在‘关于’的页面。或者,如果单击返回到主页的链接,则会得到404错误。
我遗漏了什么?
编辑
下面是代码的其余部分:
function button_scroll () {
// Call scrollIntoView js file into this
$.getScript("/js/jquery.scrollintoview.min.js", function() {
$('.down-button').on('click', function() {
var stateObj = { principles: "about-principles" };
history.pushState(stateObj, null, "about-principles");
$('#principles-wrap').scrollintoview({ duration: 1000 });
});
$('.up-button-principles').on('click', function() {
var stateObj = { mission: "about-mission" };
history.pushState(stateObj, null, "about-mission");
$('#mission-wrap').scrollintoview({ duration: 1000 });
});
$('.down-button-principles').on('click', function() {
var stateObj = { snapshot: "about-snapshot" };
history.pushState(stateObj, null, "about-snapshot");
$('#snapshot-wrap').scrollintoview({ duration: 1000 });
});
$('.up-button-snapshot').on('click', function() {
var stateObj = { principles: "about-principles" };
history.pushState(stateObj, null, "about-principles");
$('#principles-wrap').scrollintoview({ duration: 1000 });
});
$('.down-button-snapshot').on('click', function() {
var stateObj = { people: "about-people" };
history.pushState(stateObj, null, "about-people");
$('#people-wrap').scrollintoview({ duration: 1000 });
});
$('.up-button-people').on('click', function() {
var stateObj = { snapshot: "about-snapshot" };
history.pushState(stateObj, null, "about-snapshot");
$('#snapshot-wrap').scrollintoview({ duration: 1000 });
});
});}
//Dropdown
$(document).ready(function () {
$(window).on('load resize', function () {
resize_mission();
resize_principles();
resize_snapshot();
resize_people();
button_scroll();
});
var dropDown = $('.dropdown');
$('h3.about').on('click', function() {
dropDown.slideDown('fast', function() {
var url = 'about2.php'
var stateObj = { mission: "about-mission" };
history.pushState(stateObj, null, "about-mission");
$.get(url, function(data) {
resize_mission();
resize_principles();
resize_snapshot();
resize_people();
button_scroll();
});
});
});});
这就是我要做的。没有插件。
发布于 2012-11-05 21:46:15
您是否停止了“关于”页上单击事件到主页的默认操作?您是在使用preventDefault()或stopPropagation()在链接上单击“关于”页面吗?另外,您是否停止了哈希更改事件的默认行为?我们可能需要看到更多关于历史实现的代码。你有没有在历史上使用任何插件?
https://stackoverflow.com/questions/13240783
复制相似问题