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 相关文章推荐
node.js中的fs.createReadStream方法使用说明
Dec 17 Javascript
javascript 分号总结及详细介绍
Sep 24 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
Dec 27 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
Jan 18 Javascript
vue实现一个移动端屏蔽滑动的遮罩层实例
Jun 08 Javascript
AngularJS学习笔记之表单验证功能实例详解
Jul 06 Javascript
浅谈JavaScript中的属性:如何遍历属性
Sep 14 Javascript
JavaScript实现的简单Tab点击切换功能示例
Jul 06 Javascript
Js和VUE实现跑马灯效果
May 25 Javascript
Openlayers实现点闪烁扩散效果
Sep 24 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
Oct 26 Javascript
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 Vue.js
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开源开发框架ZendFramework使用中常见问题说明及解决方案
2014/06/12 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
微信支付开发订单查询实例
2016/07/12 PHP
php使用GD2绘制几何图形示例
2017/02/15 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
laravel框架 laravel-admin上传图片到oss的方法
2019/10/13 PHP
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
2016/05/10 Javascript
jQuery 全选 全不选 事件绑定的实现代码
2017/01/23 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
小程序实现授权登陆的解决方案
2018/12/02 Javascript
浅谈react-router@4.0 使用方法和源码分析
2019/06/04 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
2020/03/04 Javascript
Anaconda入门使用总结
2018/04/05 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
对Python3之进程池与回调函数的实例详解
2019/01/22 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
python 实现GUI(图形用户界面)编程详解
2019/07/17 Python
Python+AutoIt实现界面工具开发过程详解
2019/08/07 Python
pytorch多进程加速及代码优化方法
2019/08/19 Python
python统计字符的个数代码实例
2020/02/07 Python
Python填充任意颜色,不同算法时间差异分析说明
2020/05/16 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
xxx同志考察材料
2014/02/07 职场文书
应届大专生自荐书
2014/06/16 职场文书
公司年底活动方案
2014/08/17 职场文书
大学毕业论文致谢词
2015/05/14 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android