我目前正在构建一个基于jQuery en hashChanged的动态网站。 目前我在document.ready上使用此代码:
$(window).hashchange( function(){
switch(location.hash)
{
case "#/calendar":
content.load("calendar.php");
break;
case "#/media":
content.load("media.php");
break;
case "#/social":
content.load("social.php");
break;
case "#/settings":
content.load("settings.php");
break;
default:
content.load("home.php");
title.text("Debafla");
}
});
现在我正在构建一个视频galery,所以我想使用这样的URL:
example.com/#/video/12485
因此需要在内容div中加载video.php,我需要从DB获取ID为12485的视频。但是如何在javascript中覆盖这些哈希页呢?
谢谢!
答案 0 :(得分:2)
使用以下模式添加额外的if-else条件:
$(window).hashchange( function(){
if (/^#\/video\/\d+$/.test(location.hash)) { //hash equals #/video/numbers ?
var num = location.hash.match(/\d+/)[0]; //12485, for example
//do something, for example:
content.load("video.php?video_id=" + num);
} else {//Else switch:
switch(location.hash)
{
...
答案 1 :(得分:2)
我会使用split方法:
$(window).hashchange( function(){
switch(location.hash.split("/")[1])
{
case "calendar":
content.load("calendar.php");
break;
case "media":
content.load("media.php");
break;
case "social":
content.load("social.php");
break;
case "settings":
content.load("settings.php");
break;
case "video":
content.load("video.php?v=" + location.hash.split("/")[2]);
break;
default:
content.load("home.php");
title.text("Debafla");
}
});