我正在开发一个网站,我遇到了以下问题。
我的网站包含4个页面,所有这些页面都只是基于页面上菜单栏隐藏和显示的css div。
以下是我的示例:http://jsfiddle.net/DcwUu/
HTML:
<button class="home-button">Home</button>
<button class="download-button">Download</button>
<button class="about-button">About</button>
<button class="contact-button">Contact</button>
<div class="home-container">
<div class="left-corner"></div>
This is the home page!
</div>
<div class="download-container">
<div class="left-corner"></div>
This is the download page!
</div>
<div class="about-container">
<div class="left-corner"></div>
This is the about page!
</div>
<div class="contact-container">
<div class="left-corner"></div>
This is the contact page!
</div>
jQuery的:
$('.home-button').click(
function(){
$('.home-container').show();
$('.download-container').hide();
$('.about-container').hide();
$('.contact-container').hide();
}
);
$('.download-button').click(
function(){
$('.download-container').show();
$('.about-container').hide();
$('.contact-container').hide();
$('.home-container').hide();
}
);
$('.about-button').click(
function(){
$('.about-container').show();
$('.contact-container').hide();
$('.download-container').hide();
$('.home-container').hide();
}
);
$('.contact-button').click(
function(){
$('.contact-container').show();
$('.home-container').hide();
$('.download-container').hide();
$('.about-container').hide();
}
);
CSS:
.download-container {display:none;}
.about-container {display:none;}
.contact-container {display:none;}
.home {display:block;}
我的主页是index.php,我可以访问 localhost / mysite / index.php
来访问它当我点击任何链接并显示/隐藏div时,我的URL更改为 localhost / mysite / index.php#
我似乎找不到通过网址直接访问任何4个“页面”的方法。
谢谢!
答案 0 :(得分:4)
穷人这样做的方式是这样的:
var hash = window.location.hash.slice(1);
$('.page').hide();
$('#' + hash).show();
所以,给定这样的页面,
<div class="page" id="main"></div>
<div class="page" id="foo"></div>
<div class="page" id="bar"></div>
<div class="page" id="baz"></div>
如果用户转到localhost/mysite/#foo
,则会显示foo
页面。
答案 1 :(得分:1)
要获得直接访问权限,只需在网址中找到哈希值:
var hash = window.location.hash
$(hash).show();
根据此值,显示正确的div。
对于加载页面上的更改,请侦听哈希值的更改; jQuery为您提供了一个漂亮的hashchanged
事件:
$(window).on('hashchange', function() {
.. work ..
});
在此事件内部,提取您的哈希值,该哈希值应存储在window.location.hash
中。根据它的值,显示/隐藏相应的div元素。
请参阅此简单示例:http://jsfiddle.net/aUsHh/3/