本文实例讲述了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程序设计有所帮助。
本文地址:https://www.stayed.cn/item/5210
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我