所以我搜索了一段时间,我想我找到了答案,但我不确定如何应用它。
我的问题是:我的网站有一个菜单(网站用PHP和HTML5编码),每个菜单项链接到另一个页面。页面的工作方式是:
http://domainhere/index.php#home
http://domainhere/index.php#about
http://domainhere/index.php#contact
...诸如此类
截至目前,该网页并不理想,因为如果用户想要直接链接到about页面,则会加载index.php#主页。我想要的是一个函数,当文档加载地址时,它可以读取hashtag之后的值并在我写的#content div容器中加载适当的内容。截至目前,我有使用动画的jQuery函数和show()/ hide()来隐藏每个页面的div。此外,我的主页格式与其他页面的格式不同,它需要动画来减少页眉大小。我已经读过这个并且很多解决方案都提出了AJAX,但我不确定如何应用它。任何一个首发对手都会很棒,我会继续磨掉!
由于
答案 0 :(得分:0)
如果我的问题正确,你可以这样做,
$(document).ready(function(){
var target = location.hash;
// Code to hide all section
// Show the section/div whose is placed on url
$(target).show('fast');
});
答案 1 :(得分:0)
我使用jQuery读取hashtag并对其进行响应的解决方案如下所示。
我使用的jQuery插件:jquery.ba-hashchange.min.js,位于:http://benalman.com/projects/jquery-hashchange-plugin/
我将散列更改功能设置为在页面加载和散列更改时发生。因此,不是从菜单单击中调用显示/隐藏功能,而是将它们放在哈希更改功能中,让它处理页面加载和菜单选择。然后你的菜单链接,只需要关注更改哈希值。
而且,如果您最终切换到使用AJAX单独加载页面内容,而不是一次性加载整个站点,那么交换机中的函数调用可以使ajax调用返回特定内容。或者,您可以将主题标签传递给通用的ajax调用,并且ajax Web方法/服务调用可以根据传递的主题标签确定要返回的内容。
$(function () {
$(window).hashchange(function () {
var hash = location.hash;
//This part here untested - you'll need to write it custom for your menu.
switch (hash){
case "#about":
ShowAboutDiv();
//this should be the function you already call to show the about div.
break;
case "#contact":
ShowContactDiv();
break;
default :
//show home div, or maybe it already shows.
break;
};
});
//handle page load hash...
$(window).hashchange();
});