jQuery哈希已更改通配符
我目前正在基于jQuery构建一个动态网站。 目前我在document.ready上使用此代码:jQuery哈希已更改通配符,jquery,hashchange,Jquery,Hashchange,我目前正在基于jQuery构建一个动态网站。 目前我在document.ready上使用此代码: $(window).hashchange( function(){ switch(location.hash) { case "#/calendar": content.load("calendar.php"); break; case "#/media": content.load("media.php");
$(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
所以video.php需要加载到content div en中,我需要从DB中获取ID为12485的视频。但是如何用javascript覆盖这些散列页面呢
谢谢大家! 使用以下模式添加额外的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)
{
...
使用以下模式添加额外的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)
{
...
我将使用拆分方法:
$(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");
}
});
我将使用拆分方法:
$(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");
}
});
如此简单但如此有效,似乎也是未来的最佳解决方案是的,只要保持/keyword/data格式,它就可以满足未来的需求如此简单但如此有效,似乎也是未来的最佳解决方案是的,只要保持/keyword/data格式,它就可以满足未来的需求