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 相关文章推荐
提高代码性能技巧谈—以创建千行表格为例
Jul 01 Javascript
javascript 网页跳转的方法
Dec 24 Javascript
匹配任意字符的正则表达式写法
Apr 29 Javascript
javascript继承之为什么要继承
Nov 10 Javascript
fmt:formatDate的输出格式详解
Jan 09 Javascript
angularJS 中input示例分享
Feb 09 Javascript
JavaScript中join()方法的使用简介
Jun 09 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
Apr 24 Javascript
详解AngularJS 过滤器的使用
Jun 02 Javascript
解决axios发送post请求返回400状态码的问题
Aug 11 Javascript
Angular2 自定义表单验证器的实现方法
Dec 14 Javascript
jQuery 移除事件的方法
Jun 20 jQuery
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 读取文件内容代码(txt,js等)
2009/12/06 PHP
PHP+ACCESS 文章管理程序代码
2010/06/21 PHP
Smarty中调用FCKeditor的方法
2014/10/27 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
php修改数组键名的方法示例
2017/04/15 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
2017/11/28 PHP
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
js实现图片和链接文字同步切换特效的方法
2015/02/20 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
Mongoose经常返回e11000 error的原因分析
2017/03/29 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
解决vue attr取不到属性值的问题
2018/09/18 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
layui radio点击事件实现input显示和隐藏的例子
2019/09/02 Javascript
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
Python循环语句中else的用法总结
2016/09/11 Python
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
Python探索之SocketServer详解
2017/10/28 Python
uwsgi+nginx部署Django项目操作示例
2018/12/04 Python
使用python搭建服务器并实现Android端与之通信的方法
2019/06/28 Python
Pycharm修改python路径过程图解
2020/05/22 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
Burberry英国官网:英国标志性奢侈品牌
2017/03/29 全球购物
夜大毕业生自我鉴定
2013/10/31 职场文书
《哪吒闹海》教学反思
2014/02/28 职场文书
岗位竞聘演讲稿范文
2014/04/24 职场文书
新党章的学习心得体会
2014/11/07 职场文书
经验交流材料格式
2014/12/30 职场文书
汽车修理厂管理制度
2015/08/05 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书
浅谈react useEffect闭包的坑
2021/06/08 Javascript
javascript数组includes、reduce的基本使用
2021/07/02 Javascript
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript