js实现 路由跳转
来源:互联网 发布:淘宝客好做吗难 编辑:程序博客网 时间:2024/04/27 23:15
<!DOCTYPE html><html lang="en"> <head> <meta charset="utf-8"> <style> #display{width: 300px;height: 300px} </style> </head> <body> <div id="app"> <p><a href="#/">home-first</a></p> <p><a href="#/home">home</a></p> <p><a href="#/contact">contact</a></p> <p><a href="#/news">news</a></p> </div> <div id="display"> </div> <script type="text/javascript"> function Router(){ this.paths={}; this.curPath=''; } Router.prototype={ path:function(str,callback){ var func=callback||function(){}; this.paths[str]=func; }, refresh:function(){ this.curPath=location.hash.slice(1)||'/home' this.paths[this.curPath]() }, init:function(){ window.addEventListener('load',this.refresh.bind(this),false) window.addEventListener('hashchange',this.refresh.bind(this),false) } } var display=document.getElementById('display'); var r=new Router(); r.path('/home',function(){ display.innerHTML='home'; display.style.background='yellow' }) r.path('/contact',function(){ display.innerText='contact'; display.style.background='black' }) r.path('/news',function(){ display.innerText='news'; display.style.background='green' }) r.init() </script> </body></html>
- 这里的关键事load和hashchange事件,通过监测路由变化而得到内容的变化
- this.paths是存储页面内容的对象
- this.curPath是存储当前路由
bind的实现
function a(fn,context) { var args = Array.prototype.slice.call(arguments,2) return function() { var innerArgs = Array.prototype.slice.call(arguments); var finalArgs = args.concat(innerArgs) fn.apply(context,finalArgs) } } function main() { console.log(this.b) } Function.prototype.bind = function(context) { var that = this; var args = Array.prototype.slice.call(arguments,1) return function() { var innerArgs = Array.prototype.slice.call(arguments); var finalArgs = args.concat(innerArgs) that.apply(context,finalArgs) } }
0 0
- js实现 路由跳转
- js实现路由跳转
- JS实现路由跳转
- js路由分页跳转
- 简单的js路由跳转
- react-router JS 控制路由跳转
- angular设置路由实现无刷新跳转
- ARouter路由使用拦截链接跳转实现
- js 实现页面跳转
- JS select实现跳转
- js实现页面跳转
- js实现页面跳转
- js 实现跳转
- js实现页面跳转
- js实现select跳转
- js实现页面跳转
- js跳转页面实现
- JS实现路径跳转
- 剑指offer-二维数组中的查找
- 在O(1)时间删除单链表结点
- linux通过单用户修改用户密码的方法
- noi-7542-正常血压
- 图解Linux命令之--chkconfig命令
- js实现 路由跳转
- DEV--chartcontrol绘制统计图
- Cookie与Session的区别-总结很好的文章
- 数据结构-字符串匹配AC自动机
- c++经典项目控制台贪吃蛇小游戏详细教程
- noi-7541-药房管理
- 二分图的最大匹配
- 动态规划之钢条切割问题
- 56. Merge Intervals