Jquery实现仿京东商城省市联动菜单
作者:bea
本文实例讲述了Jquery实现仿京东商城省市联动菜单的简单实例代码。分享给大家供大家参考。具体如下: 运行效果截图如下: 具体代码如下: <!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="assets/css/boot
本文实例讲述了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程序设计有所帮助。
有用 | 无用
具体代码如下:
<!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性能优化之小知识总结
- Bootstrap每天必学之基础排版
- 详解JavaScript的回调函数
- JavaScript制作淘宝星级评分效果的思路
- jquery动态增加删减表格行特效
- 跟我学习javascript的异步脚本加载
- JavaScript获取各大浏览器信息图示
- 跟我学习javascript创建对象(类)的8种方法
- 跟我学习javascript的最新标准ES6
- 详解JavaScript语言的基本语法要求
- 每天一篇javascript学习小结(面向对象编程)
- js鼠标点击图片切换效果实现代码
- Bootstrap每天必学之简单入门
- jquery实现横向图片轮播特效代码分享
- Jquery 全选反选实例代码
- Bootstrap每天必学之前端开发框架
- 基于html5和nodejs相结合实现websocket即使通讯
- 浅析nodejs实现Websocket的数据接收与发送
- Node.js中使用socket创建私聊和公聊聊天室