이 글의 예제에서는 Jingdong Mall의 성, 시를 모방한 연결 메뉴를 구현하기 위한 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는 Jingdong Mall의 지방 및 도시 연결 메뉴를 구현합니다."
이 기사가 JavaScript 프로그래밍을 배우는 모든 사람에게 도움이 되기를 바랍니다.