q.js
q.js copied to clipboard
支持路由嵌套么?
比如2个层级以上的路由
多层级是支持的,q.js 不关注回调之后的事情
没有看见相关的资料 默认的demo只有一个 菜单,点了就出现内容。 有没有点了菜单后 又出现一个子菜单,再点才出现内容的demo?
那需要在回调内针对传入参数对DOM进行修改
加了一个例子 https://github.com/itorr/q.js/blob/master/demos/level2.html
你好,我看了你给的例子,我的意思是这样:
Q.reg('home',function(type){ document.getElementById('m').innerHTML='打开了 Home 菜单<br>'; document.getElementById('m').innerHTML+='<a href="#/home/city">加载home下面的子菜单#/city</a>'; }); Q.reg('home/city',function(){//这里注册子菜单。 console.log("打开城市内容"); }); Q.init({ index:'home'/* 首页地址 */ });
如果 view 内容完全不同 你可以用正则表达式匹配 比如 /^home/city/
正则表达式匹配优先于普通匹配
/ -》 / 手机端发布会少一个反斜杠
/ 替换成 \/
我用正则转换了/斜线,但是注册的 home/menu 不执行,求解
Q.reg('home',function(){ document.getElementById('m').innerHTML='打开了主页<br>'; document.getElementById('m').innerHTML+='加载子菜单:<a href="#/home/menu">#/home/menu</a>'; }); Q.reg('home\/menu',function(){ console.log('打开菜单页') });
是这样的,这里需要用正则表达式 而不是字符串形式
Q.reg(/^home\/menu/,function(){
console.log('打开菜单页');
});