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 相关文章推荐
jquery.cvtooltip.js 基于jquery的气泡提示插件
Nov 19 Javascript
THREE.JS入门教程(5)你应当知道的十件事
Jan 24 Javascript
Angular中$compile源码分析
Jan 28 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
Apr 21 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
Jun 29 Javascript
JavaScript数据结构之二叉树的删除算法示例
Apr 13 Javascript
详解用node-images 打造简易图片服务器
May 08 Javascript
详解Vue2.0组件的继承与扩展
Nov 23 Javascript
微信小程序实现的一键拨号功能示例
Apr 24 Javascript
在VUE中实现文件下载并判断状态的方法
Nov 08 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
Nov 09 Javascript
JavaScript实现打砖块游戏
Feb 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答题类应用接口实例
2015/02/09 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
ExtJS 2.0 实用简明教程之布局概述
2009/04/29 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
JS扩展方法实例分析
2015/04/15 Javascript
使用AngularJS实现可伸缩的页面切换的方法
2015/06/19 Javascript
第一章之初识Bootstrap
2016/04/25 Javascript
js实现三级联动效果(简单易懂)
2017/03/27 Javascript
vue-loader教程介绍
2017/06/14 Javascript
JS实现弹出下载对话框及常见文件类型的下载
2017/07/13 Javascript
vue-router 路由基础的详解
2017/10/17 Javascript
详解React 的几种条件渲染以及选择
2018/10/23 Javascript
解决Layui数据表格显示无数据提示的问题
2019/11/14 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
2020/07/11 Javascript
python抓取网页图片示例(python爬虫)
2014/04/27 Python
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
python的变量与赋值详细分析
2017/11/08 Python
Python断言assert的用法代码解析
2018/02/03 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
如何一键升级Python所有包
2020/11/05 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
科茨沃尔德家居商店:Scotts of Stow
2018/06/29 全球购物
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
理工大学毕业生自荐信范文
2014/02/22 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
诉讼授权委托书
2014/10/15 职场文书
员工工作表扬信
2015/05/05 职场文书
用人单位聘用意向书
2015/05/11 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
教您:房贷工资收入证明应该怎么写?
2019/08/19 职场文书
浅谈Redis的keys命令到底有多慢
2021/10/05 Redis