Das Beispiel in diesem Artikel beschreibt den einfachen Beispielcode von Jquery zur Implementierung eines Verknüpfungsmenüs, das die Provinzen und Städte der Jingdong Mall imitiert. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Der Screenshot des Laufeffekts sieht wie folgt aus:
Der spezifische Code lautet wie folgt:
<!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>
Download des Quellcodes: "Jquery implementiert das Verknüpfungsmenü für die Provinzen und Städte der Jingdong Mall"
Ich hoffe, dass dieser Artikel für alle hilfreich ist, die JavaScript-Programmierung lernen.