Jquery 单页网站,打开部分,更改哈希AJAX
这可能是一个愚蠢的问题,但假设我有一个单页网站,其中所有部分都是隐藏的,只有在单击按钮菜单时才会显示,以显示特定部分,并隐藏其他部分。现在,当我重新加载页面时,它总是打开默认的第一页。我想用的是 www.example/index.html#page1 或 www.example/index.html#page2 或 www.example/index.html#page3 index.html页面: 菜单:Jquery 单页网站,打开部分,更改哈希AJAX,jquery,ajax,Jquery,Ajax,这可能是一个愚蠢的问题,但假设我有一个单页网站,其中所有部分都是隐藏的,只有在单击按钮菜单时才会显示,以显示特定部分,并隐藏其他部分。现在,当我重新加载页面时,它总是打开默认的第一页。我想用的是 www.example/index.html#page1 或 www.example/index.html#page2 或 www.example/index.html#page3 index.html页面: 菜单: <ul> <li>page1</li> <l
<ul>
<li>page1</li>
<li>page2</li>
<li>page3</li>
</ul
- 第1页
- 第2页
- 第3页
对于SEO标准来说,这是完全不可行的,但如果您决定继续,您可以使用
jQuery
HTML
<ul id="myMenu">
<li><a href="#page1">page1</a></li>
<li><a href="#page2">page2</a></li>
<li><a href="#page3">page3</a></li>
</ul>
<div id="page1" class="pages">content 1</div>
<div id="page2" class="pages" style="display:none">content 2</div>
<div id="page3" class="pages" style="display:none">content 3</div>
对于SEO标准来说,这是完全不可行的,但如果您决定继续,您可以使用jQuery
HTML
<ul id="myMenu">
<li><a href="#page1">page1</a></li>
<li><a href="#page2">page2</a></li>
<li><a href="#page3">page3</a></li>
</ul>
<div id="page1" class="pages">content 1</div>
<div id="page2" class="pages" style="display:none">content 2</div>
<div id="page3" class="pages" style="display:none">content 3</div>
第1页
第2页
第3页
变量pageID=['page1','page2','page3'];
函数hidePage(){
对于(变量i=0;i
第1页
第2页
第3页
变量pageID=['page1','page2','page3'];
函数hidePage(){
对于(var i=0;ijQuery有缓存库,你可以使用该库来保存上次打开的选项卡或链接。jQuery有缓存库,你可以使用该库来保存上次打开的选项卡或链接。Checkout Backbone.js。它只是你正在寻找的..Checkout Backbone.js。它只是你正在寻找的..是的,我知道,对搜索引擎优化没有好处。但是这一个不一定是。无论如何,你的解决方案是我已经有的,但是如果url只有index.html,我怎么打开第2页呢?我不能使用index.html之类的东西吗?page2I已经更新了我的答案。这是在JSFIDLE上测试它的诀窍,所以试一试。请注意,hashchange
事件可能在某些浏览器上不起作用。你有过吗在决定使用之前,请仔细检查。此外,如果答案解决了您的问题,请将其标记为解决方案。:)+谢谢你提到这一点。是的,我知道,这对SEO不好。但这一个不一定是。无论如何,你的解决方案是我已经有的,但是如果url只有index.html,我如何打开第2页呢?我不能使用index.html之类的东西吗?第2页我已经更新了我的答案。这是在JSFIDLE上测试它的技巧,所以试试吧。只要知道hashchange
事件可能在某些浏览器上不起作用。在决定使用它之前,请仔细检查。此外,如果答案解决了您的问题,请将其标记为解决方案。:/1以供参考。
$(function () {
$(window).on("hashchange", function () {
var hash = window.location.hash;
if (hash != "") {
$(".pages").hide();
$(hash).show();
}
});
});
<html>
<head>
</head>
<body>
<ul>
<li><a href="#page1">page1</a></li>
<li><a href="#page2">page2</a></li>
<li><a href="#page3">page3</a></li>
</ul>
<div id="page1">page1</div>
<div id="page2">page2</div>
<div id="page3">page3</div>
<script>
var pageIds = ['page1','page2','page3'];
function hidePage(){
for(var i=0;i<pageIds.length;i++){
document.getElementById(pageIds[i]).style.display = 'none';
}
}
function getPage(){
var hash = window.location.hash.slice(1);
return document.getElementById(hash);
}
function showPage(){
var currentPage = getPage();
if(currentPage){
currentPage.style.cssText = 'display:block';
}else{
document.getElementById('page1').style.cssText = 'display:block';
}
}
function initPage(){
hidePage();
showPage();
}
initPage();
setInterval(function(){
initPage();
},300);
</script>
</body>
</html>