实现:ajax实现点击左侧菜单,右侧加载不同网页(在整个页面无刷新的情况下实现右侧局部刷新,用到ajax注意需要在服务器环境下运行,从HBuilder自带的服务器中打开浏览效果即可)

图片.png

原理:ajax的局部刷新原理:通过.load()重新加载页面中的某一部分,巧妙的借助data-*的自定义属性来存储数据,点击的时候修改锚点,因为地址有变,所以刷新的时候仍然会保持当前的页面内容而不是切换到第一个。

遇到ajax局部刷新的需求也有很多,有时候比较简单,当内容较少,适合做成选项卡,如果网页的左侧有一个列表,点击列表使右侧的内容进行切换,如果右侧的内容过多,不适合做选项卡,这时候用.load()局部刷新最好不过了,在项目中经常使用到流程管理后台,便是左右结构布局,这个时候,简单的demo示例如下

<!DOCTYPE html>
<html lang="en"><head><title>ajax局部刷新</title><style>.userMenu {float: left;width: 200px;}#content {float: left;}</style><meta charset="utf-8"><script src="http://code.jquery.com/jquery-1.8.0.min.js"></script></head><body><div class="userWrap"><ul class="userMenu"><li class="current" data-id="center">用户中心</li><li data-id="account">账户信息</li><li data-id="trade">交易记录</li><li data-id="info">消息中心</li></ul><div id="content"></div></div></body><script>$(function() {$(".userMenu").on("click", "li", function() {var sId = $(this).data("id"); //获取data-id的值window.location.hash = sId; //设置锚点loadInner(sId);});function loadInner(sId) {var sId = window.location.hash;var pathn, i;switch(sId) {case "#center":pathn = "user_center.html";i = 0;break;       case "#account":pathn = "user_account.html";i = 1;break;case "#trade":pathn = "user_trade.html";i = 2;break;case "#info":pathn = "user_info.html";i = 3;break;      default:pathn = "user_center.html";i = 0;break;}$("#content").load(pathn); //加载相对应的内容$(".userMenu li").eq(i).addClass("current").siblings().removeClass("current"); //当前列表高亮}var sId = window.location.hash;loadInner(sId);});</script></html>

创建右侧对应的几个新的html页面user_center.html,user_account.html,user_trade.html,user_info.html

user_center.html
<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body><div>用户中心用户中心用户中心</div></body>
</html>
user_account.html
<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body><div>账户信息账户信息账户信息</div></body>
</html>
user_trade.html
<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body><div>交易中心交易中心交易中心
</div></body>
</html>

user_info.html

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body><div>消息中心消息中心消息中心</div></body>
</html>

90后前端妹子,爱编程,爱运营,爱折腾。
坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,欢迎大家一起探讨交流。
原文作者:祈澈姑娘
原文链接:https://www.jianshu.com/u/05f416aefbe1
创作不易,转载请告知

转载于:https://www.cnblogs.com/ting6/p/9725528.html

ajax实现简单的点击左侧菜单,右侧加载不同网页相关推荐

  1. html点击左侧菜单右侧顶部生成选项卡,标签在左侧的CSS竖向简洁选项卡

    标签在左侧的CSS竖向简洁选项卡 body{padding:50px;margin:0;color:#666;font:12px arial,sans-serif;} #getId{width:400 ...

  2. php怎么写左侧菜单右侧内容,ifram 实现左侧菜单,右侧显示内容

    一般都是左侧的导航栏中的a标签中写一个target(a标签有target属性), 右侧的div标签中写一个iframe,在iframe中有name的属性,在左侧a标签中的target写上iframe中 ...

  3. chrome 自动加载ajax.googleapis,使用Redirector插件解决googleapis公共库加载的问题

    最近访问一些面向国外的网站总是会出现ajax.googleaips.com无法加载的情况.以下为加载stackoverflow时的情境: 图1 -无法加载的google公共库 问题的原因是谷歌没有在国 ...

  4. selenium爬取Ajax加载的网页(以微博为例)

    Tip:我写了一篇直接构造请求获取微博数据的文章,不使用selenium,直接访问url获取到json数据,然后解析即可得到想要的数据的文章,请参考微博博主动态及相册的请求构造规律 ========= ...

  5. Android之解决webview加载第三方网页点击弹不出下拉框(html页面里面的select标签)

    1 问题 决webview加载第三方网页点击弹不出下拉框(html页面里面的select标签),我们访问youtube.com官网,点击网站的视频,点击视频右上角三个点设置,然后点击 播放设置 然后点 ...

  6. MJ“点击或上拉加载更多”问题

    MJ作为下拉加载和上拉刷新的三方库,特别好用.最近在用的时候发现网上有说MJ"点击或上拉加载更多"有bug,什么情况呢? 下拉加载更多 self.collectionView.mj ...

  7. uniapp中实现每次点击左侧菜单右边区域都从顶部开始

    使用scroll-view容器,借助滚动事件捕获当前距离顶部距离,然后给scroll-top重新设置为0实现滚动 <scroll-view class="right" scr ...

  8. Dwz点击左侧菜单动态添加Tab标签图标

    此篇文章是基于ztree实现,若是dwz与ztree未整合,请先按照<DWZ和zTree整合(实现版)>文章整合. 需求描述: 点击左侧树形菜单(target=navTab)时,在左侧Ta ...

  9. vue结合Element UI如何实现点击左侧菜单的折叠与展开

    一.Element UI 中菜单的折叠与展开 在Element UI中的官方文档中,在NavMenu 导航菜单中,在Menu Attribute 中,有一个 collapse 属性.它的作用是是否水平 ...

最新文章

  1. 秋招要跪?不怕!领走这份机器学习求职攻略
  2. 三十一、Vue框架赶紧来了解一下
  3. 你会通过Docker部署war包吗
  4. html跳转网页为什么网页无法访问,朋友的网站被网址跳转,导致官网无法正常访问...
  5. 浅谈Opencl之Image和Buffer 区别
  6. 利用分析函数改写范围判断自关联查询
  7. 免费UI圆角字体素材|字体设计密码:字形设计中“圆角”的应用规范
  8. 联系实际谈谈管理者的沟通协调能力建设
  9. 程序员应具备的素质[转帖]
  10. 系统设计2:数据库设计
  11. DIAView 嵌入视频监控(海康威视)
  12. python暴力破解wps,Word,excel等文件
  13. 艾默生变频器报警PHP,艾默生/Emerson变频器启动就报警维修很牛
  14. Layabox 屏幕适配
  15. 3500字专家访谈,探访汽车零部件企业争相迈步数字化背后的故事
  16. scl语言用plc脉冲做定时器_请问SCL语言如何调用定时器
  17. Footprint Analytics:多角度理解Layer 2生态:概念、扩容方案及代表项目
  18. 金融风险管理 思维导图
  19. 第四十一章 2D游戏(2)
  20. 格理论与密码学(二)

热门文章

  1. Linux LVM相关概念
  2. hbase读写流程及缓存机制
  3. Python爬虫开发:ip代理的使用
  4. Java基础--static静态原理及API使用示例详解
  5. hadoop大数据——mapreduce程序提交运行模式及debug方法
  6. mysql base64 乱码_PHP base64编码后解码乱码的解决办法
  7. c#语言文件扩展名,C#应用程序项目文件的扩展名是()。
  8. Qt状态机框架介绍(一)
  9. c++中类的申明和定义
  10. 用python向mongodb插入数据_Python操作MongoDB数据库(一)