ajax请求json数据案例详解

 更新时间:2015年09月17日 10:15:34   作者:风雨后见彩虹  
最近项目有这样一个需求,点击六大洲,出现对应的一些请求信息,展示在下面,当请求之后,第二次点击就不用再次请求了,究竟用代码怎么写呢,下面小编带领大家了解了解

今天有这样一个需求,点击六个大洲,出现对应的一些请求信息,展示在下面,请求请求过后,第二次点击就无需请求。
如图所示:点击北美洲下面出现请求的一些数据

html代码结构:

<div class="conSixmap">
  <div class="name conmap01" data-name="beimeizhou">
    <a href="javascript:void(0)">北美洲</a>
    <div class="condetail"></div>
  </div>
  <div class="name conmap02" data-name="nanmeizhou">
    <a href="javascript:void(0)">南美洲</a>
    <div class="condetail"></div>
  </div>
  <div class="name conmap03" data-name="ouzhou">
    <a href="javascript:void(0)">欧洲</a>
    <div class="condetail"></div>
  </div>
  <div class="name conmap04" data-name="feizhou">
    <a href="javascript:void(0)">非洲</a>
    <div class="condetail"></div>
  </div>
  <div class="name conmap05" data-name="yazhou">
    <a href="javascript:void(0)">亚洲</a>
    <div class="condetail"></div>
  </div>
  <div class="name conmap06" data-name="dayangzhou">
    <a href="javascript:void(0)">大洋洲</a>
    <div class="condetail"></div>
  </div>
</div> 

css样式:

.conSixmap{position:relative;width:678px;height:335px;margin:0 auto;background:url(../images/tuanduimapBg.png) no-repeat;color:#000;font-family:"微软雅黑"}
.conSixmap .name .condetail{display:none;position:absolute;z-index:10;width:216px;padding:10px;left:50%;margin-left:-118px;top:54px;background:url(../images/opcity83.png) repeat;border-radius:5px;}
.conSixmap .condetail span{display:block;color:#fff;font-size:14px;text-align:left;}
.conSixmap .name{position:absolute;width:52px;height:55px;}
.conSixmap .name a{display:block;z-index:2;position:absolute;padding-top:35px;text-align:center;cursor:pointer;width:52px;height:20px;color:#000;font-size:12px;}
.conSixmap .conmap01{left:91px;top:73px;}
.conSixmap .conmap01 a{background:url(../images/beimeipicBg.png) no-repeat top center;}
.conSixmap .conmap02 {left:180px;top:213px;}
.conSixmap .conmap02 a{background:url(../images/nanmeimapbg.png) no-repeat top center;}
.conSixmap .conmap03 {left:339px;top:68px;}
.conSixmap .conmap03 a{background:url(../images/ouzhoumapBg.png) no-repeat top center;}
.conSixmap .conmap04{left:327px;top:158px;}
.conSixmap .conmap04 a{background:url(../images/feizhoumapbg.png) no-repeat top center;}
.conSixmap .conmap05 {left:480px;top:75px;}
.conSixmap .conmap05 a{background:url(../images/yazhoumapBg.png) no-repeat top center;}
.conSixmap .conmap06 {left:545px;top:220px;}
.conSixmap .conmap06 a{background:url(../images/dayangmapbg.png) no-repeat top center;}

json格式:

{
  "beimeizhou": [
    "请求的json数据1",
    "请求的json数据2"
  ],
  "nanmeizhou": [
    "请求的json数据3",
    "请求的json数据4"
  ],
  "ouzhou": [
    "请求的json数据5",
    "请求的json数据6",
    "请求的json数据7",
    "请求的json数据8"
  ],
  "feizhou": [
    "请求的json数据9",
    "请求的json数据10",
    "请求的json数据11",
    "请求的json数据12"
  ],
  "yazhou": [
    "请求的json数据13",
    "请求的json数据14"
  ],
  "dayangzhou": [
    "请求的json数据15",
    "请求的json数据16"
  ]
}

js代码:

$(document).ready(function(){
  //添加地图
  var stauteArr={
      'beimeizhou':'true',
      'nanmeizhou':'true',
      'ouzhou':'true',
      'feizhou':'true',
      'yazhou':'true',
      'dayangzhou':'true'
    };
  $(".conSixmap .name").on('click',function(){
    var _this=this;
    var htmlcon="";
    $(this).siblings(".name").children(".condetail").fadeOut(500);
    $(this).children(".condetail").fadeIn(500);
    var _name=$(this).attr('data-name');
     $.ajax({
      url:"js/schoolMap.json",
      type:'get',
      data:{},
      dataType:"json",
      success: function(data){
        for(var i in data){
          if(_name==i && stauteArr[i]=='true'){
            for(var j=0;j<data[i].length;j++){
               htmlcon+="<span>"+data[i][j]+"</span>";
            }
            $(_this).children(".condetail").append(htmlcon);
            stauteArr[i]='false';
          }
        }
      },
      error: function(){
        alert('请求失败,请检查网络');
      }
    });
  });
});

相关文章

  • Ajax in action 英文版配书源码 下载

    Ajax in action 英文版配书源码 下载

    Ajax in action 英文版配书源码 下载...
    2007-05-05
  • AJax 把拿到的后台数据在页面中渲染的实例

    AJax 把拿到的后台数据在页面中渲染的实例

    今天小编就为大家分享一篇AJax 把拿到的后台数据在页面中渲染的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • ajax上传图片到PHP并压缩图片显示的方法

    ajax上传图片到PHP并压缩图片显示的方法

    这篇文章主要为大家详细介绍了ajax上传图片到PHP并压缩图片显示的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • asp.net jquery+ajax异步刷新实现示例

    asp.net jquery+ajax异步刷新实现示例

    异步刷新想必大家并不陌生吧,本文主要为大家介绍下asp.net jquery+ajax实现异步刷新过程,感兴趣的朋友可以参考下
    2013-09-09
  • 基于ajax实现无刷新分页的方法

    基于ajax实现无刷新分页的方法

    这篇文章主要介绍了基于ajax实现无刷新分页的方法,实例分析了Ajax实现分页的技巧,需要的朋友可以参考下
    2015-02-02
  • 简述Ajax的优点与缺点

    简述Ajax的优点与缺点

    这篇文章主要介绍了Ajax的优点与缺点的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-11-11
  • js ajax加载时的进度条代码

    js ajax加载时的进度条代码

    在web页面中使用ajax加载进度条,可以让用户预先判断等待的时间,而且还可以减少用户等待信息加载过程中的心理焦虑感,所以进度条加载必不可少,下面小编给大家介绍ajax加载进度条代码是如何实现的
    2015-10-10
  • 无框架 Ajax分页(原创)

    无框架 Ajax分页(原创)

    最近想做一个Ajax的功能,网上一搜几乎全是基于某某框架的Ajax分页,要么需给页面加上<scriptManager></scriptManager>,要么需引入某dll,要么需使用类似于jquery的框架。
    2009-08-08
  • 使用ajax实现分页技术

    使用ajax实现分页技术

    这篇文章主要为大家详细介绍了如何使用ajax实现分页技术,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • ie7下利用ajax跨域盗取cookie的解决办法

    ie7下利用ajax跨域盗取cookie的解决办法

    网上的很多文章提到的利用ajax盗取cookie的代码经我测试不可行。
    2008-07-07

最新评论