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 相关文章推荐
不使用浏览器运行javascript代码的方法
Jul 24 Javascript
JS 实现导航栏悬停效果(续2)
Sep 24 Javascript
jquery实现图片预加载
Dec 25 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
Jun 06 Javascript
JS中递归函数
Jun 17 Javascript
Bootstrap和Java分页实例第一篇
Dec 23 Javascript
基于vue.js实现侧边菜单栏
Mar 20 Javascript
完美实现js拖拽效果 return false用法详解
Jul 28 Javascript
layui表格分页 记录勾选的实例
Sep 02 Javascript
使用layui 的layedit定义自己的toolbar方法
Sep 18 Javascript
Vuex实现数据增加和删除功能
Nov 11 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
Apr 20 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中对2个数组相加的函数
2011/06/24 PHP
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
总结一些PHP中好用但又容易忽略的小知识
2017/06/02 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
WEB高性能开发之疯狂的HTML压缩
2010/06/19 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
ie8 不支持new Date(2012-11-10)问题的解决方法
2013/07/31 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
2015/05/16 Javascript
jQuery实现带动画效果的多级下拉菜单代码
2015/09/08 Javascript
JavaScript的this关键字的理解
2016/06/18 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
折叠菜单及选择器的运用
2017/02/03 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
微信小程序实战之自定义toast(6)
2017/04/18 Javascript
解决vue中对象属性改变视图不更新的问题
2018/02/23 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
2018/09/28 Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
2019/09/17 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
Python 实现链表实例代码
2017/04/07 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
Python基于unittest实现测试用例执行
2020/11/25 Python
python中pivot()函数基础知识点
2021/01/03 Python
css3 仿写阿里云水纹效果的示例代码
2018/02/10 HTML / CSS
Python中pass语句的作用是什么
2016/06/01 面试题
大专学生推荐信范文
2013/11/19 职场文书
表彰先进的通报
2014/01/31 职场文书
摄影专业毕业生求职信
2014/08/05 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
优秀大学生自荐信
2015/03/26 职场文书
离婚上诉状范文
2015/05/23 职场文书
儿子满月酒致辞
2015/07/29 职场文书
公司酒会致辞
2015/07/30 职场文书
2015年国培研修感言
2015/08/01 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP
浅谈Python数学建模之数据导入
2021/06/23 Python