Jquery实现仿京东商城省市联动菜单


Posted in Javascript onNovember 19, 2015

本文实例讲述了Jquery实现仿京东商城省市联动菜单的简单实例代码。分享给大家供大家参考。具体如下:
运行效果截图如下:

Jquery实现仿京东商城省市联动菜单

具体代码如下:

<!doctype html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <link rel="stylesheet" href="assets/css/bootstrap.min.css">
 <link rel="stylesheet" href="css/custom-theme/jquery-ui-1.10.0.custom.css">
 <style>
 .region li{
  float: left;
  width: 15%;
  list-style: none;
  line-height: 30px;
  padding: 2px 15px;
  white-space: nowrap;
  }
 .region li a{
  text-decoration:none;
  font-size:14px;
 }
 .region li a:hover{
  background-color: #5bb75b;
 }
 </style>
</head>
<body>

 <input type="text" id="address" class="address">
 
 <div id="addressInfo" style="display: none;position: absolute;background-color: ffffff;border: 1px solid #aaaaaa;width:400px;">
 <div class="selectAddress area">
  <ul>
  <li><a href="#tabs-1">省份</a></li>
  </ul>
  <div id="tabs-1" class="region">
  <ul>
   
  </ul>
  </div>
 </div>
 </div>
 
 
 <script src="assets/js/jquery-1.9.0.min.js"></script>
 <script src="assets/js/jquery-ui-1.10.0.custom.min.js"></script>
 <script>
 $(function(){
 
  var provinces = ['北京', '天津', '山东', '河南', '河北', '山西', '湖北', '湖南', '江西', '浙江', '上海', '安徽', '广东', '广西', '福建', '宁夏', '重庆', '四川', '西藏', '海南', '香港', '澳门', '内蒙古', '陕西', '甘肃', '黑龙江', '辽宁', '吉林'];
  var city = ['广州', '深圳', '东莞'];
  var county = ['宝安', '南山', '福田', '罗湖'];
  
  $('.address').bind('focus', function(){
  var $this = $(this);
  $('#addressInfo').css({
   top: $this.offset().top + $this.outerHeight(),
   left : $this.offset().left
  }).show();
  });
  
  var $provinces_li = $('.region>ul');
  $.each(provinces, function(e){
  $provinces_li.append('<li><a href="javascript:void(0);" class="provinces">'+this+'</a></li>');
  });
  
  var i = 0;
  
  $('.area')
  .tabs()
  .on('click', '.provinces', function(){
   //获取当前对象
   var $this = $(this),
   $tabs = $this.parents('.selectAddress'), //追加DIV
   $div = $('<div id="tabs-2"></div>'),
   $ul = $('<ul></ul>'); //追加ul
   
   $tabs.children(':eq(0)').children(':gt(0)').remove();
   $tabs.children('div:gt(0)').remove();
   
   //each遍历,赋值
   //最好是这样,code、name $ul.append('<li><a href="javascript:void(0);" class="city">'+this.name+'</a><input type="hidden" value="'+this.code+'"/></li>');
   
   $.each(city, function(){
   $ul.append('<li><a href="javascript:void(0);" class="city">'+this+'</a></li>');
   });
   
   $tabs.children('ul').append('<li><a href="#tabs-2">市区</a></li>');
   $tabs.append($div.addClass('region').append($ul));
   $tabs
   .tabs( "refresh" )
   .tabs('option', 'active', 1)
   .data('address', $this.text());
  })
  .on('click', '.city', function(){
   var $this = $(this),
   $tabs = $this.parents('.selectAddress'),
   $div = $('<div id="tabs-3"></div>'),
   $ul = $('<ul></ul>');
   
   $tabs.children('ul').children(':eq(2)').remove();
   $tabs.children('div:eq(2)').remove();
   
   i++; 
   if(i == 1){  //判断是否有下级
   $.each(county, function(){
    $ul.append('<li><a href="javascript:void(0);" class="county">'+this+'</a></li>');
   });
   
   $tabs.children('ul').append('<li><a href="#tabs-3">县区</a></li>');
   $tabs.append($div.addClass('region').append($ul));
   $tabs
    .tabs( "refresh" )
    .tabs('option', 'active', 2)
    .data('address', $tabs.data('address')+'/'+$this.text());
   }else{
   //获取值并赋值至文本框中
   $('.address').val($tabs.data('address')+'/'+$this.text());
   $tabs.parent().hide();
   }
  })
  .on('click', '.county', function(){
   var $this = $(this),
   $tabs = $this.parents('.selectAddress');
   
   $('.address').val($tabs.data('address')+'/'+$this.text());
   $tabs.parent().hide();
  })
  ;
  
  
  $(document).bind('click', function(e){
  var $target = $(e.target),
   addressInfo = $('#addressInfo');
  if(!$target.hasClass('selectAddress') 
   && $target.parents('.selectAddress').size() == 0 
   && !$target.is($('.address'))
   && addressInfo.is(':visible')){
   $('#addressInfo').hide();
  }
  });
 })
 </script>
</body>
</html>

源码下载: 《Jquery实现仿京东商城省市联动菜单》

希望本文所述对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
JS 无法通过W3C验证的处理方法
Mar 09 Javascript
用JS判别浏览器种类以及IE版本的几种方法小结
Aug 02 Javascript
深入理解JavaScript是如何实现继承的
Dec 12 Javascript
JQUERY 设置SELECT选中项代码
Feb 07 Javascript
使用js dom和jquery分别实现简单增删改
Sep 11 Javascript
javascript引用赋值(地址传值)用法实例
Jan 13 Javascript
JS+CSS实现电子商务网站导航模板效果代码
Sep 10 Javascript
js 动态生成json对象、时时更新json对象的方法
Dec 02 Javascript
实现JavaScript高性能的数据存储
Dec 11 Javascript
Vue form表单动态添加组件实战案例
Sep 02 Javascript
解决layer.confirm选择完之后消息框不消失的问题
Sep 16 Javascript
微信小程序实现轮播图指示器
Jun 25 Javascript
javascript实现二级级联菜单的简单制作
Nov 19 #Javascript
jquery通过扩展select控件实现支持enter或focus选择的方法
Nov 19 #Javascript
javascript中checkbox使用方法实例演示
Nov 19 #Javascript
jquery实现表格隔行换色效果
Nov 19 #Javascript
javascript设计简单的秒表计时器
Sep 05 #Javascript
跟我学习javascript的定时器
Nov 19 #Javascript
分享纯手写漂亮的表单验证
Nov 19 #Javascript
You might like
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
PHP Class SoapClient not found解决方法
2018/01/20 PHP
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
javascript中返回顶部按钮的实现
2015/05/05 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
关于Javascript中document.cookie的使用
2017/03/08 Javascript
浅谈react 同构之样式直出
2017/11/07 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
vue中接口域名配置为全局变量的实现方法
2018/09/20 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
2019/08/26 Javascript
layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法
2019/09/24 Javascript
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
深入解析Python编程中super关键字的用法
2016/06/24 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
Django2.1.7 查询数据返回json格式的实现
2020/12/29 Python
html5指南-5.使用web storage存储键值对的数据
2013/01/07 HTML / CSS
为世界各地的女性设计和生产时尚服装:ROMWE
2016/09/17 全球购物
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
FitFlop澳大利亚官网:英国符合人体工学的鞋类品牌
2017/06/05 全球购物
村当支部个人对照检查材料思想汇报
2014/10/06 职场文书
2014年团工作总结
2014/11/27 职场文书
网络销售员岗位职责
2015/04/11 职场文书
导游词之海南天涯海角
2019/12/05 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
Python基础知识之变量的详解
2021/04/14 Python