AngularJS實現的省市二級聯動功能樣本【可對選項實現增刪】,angularjs樣本

來源:互聯網
上載者:User

AngularJS實現的省市二級聯動功能樣本【可對選項實現增刪】,angularjs樣本

本文執行個體講述了AngularJS實現的省市二級聯動功能。分享給大家供大家參考,具體如下:

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>www.jb51.net 省市二級聯動</title></head><style> *{  margin:0;  padding:0; } .ul{  list-style:none;  display:inline-block; } .selectOption ul li{  display:inline-block;  width:50px;  padding:5px; } ul li:hover{  background-color:#59C0F3;  color:#fff;  cursor:pointer; } .container{  display:inline-block; } dl{  display: inline-block; } dl dt{  display: inline-block; } .container{  position:relative;  text-align: left;  vertical-align:top; } .selectBoder{  width:150px;  height:20px;  margin:0 auto;  margin-bottom:5px;  cursor:pointer;  border:1px solid #808080;  padding:2px 5px;  font-size:14px; } .selectBoder:hover{  border-color:#59C0F3; } .selectOption:before{  width: 0;  height: 0;  border-bottom: 50px solid #ffffff;  border-left: 50px solid transparent;  border-right: 50px solid transparent; } .selectOption{  font-size:14px;  position:absolute;  background-color: #ffffff;  z-index:9999;  border:1px solid #eee;  width:360px;  padding:3px 5px;  box-shadow: 5px 5px 10px #888888; } .button{  width:30px;  height:30px;  display: inline-block;  background-color:#59C0F3;  text-align:center;  line-height: 25px;  cursor:pointer;  font-size:24px;  color:#fff;  margin:0 5px;  border-radius:30px; } .button:hover{  background-color:#12bb16; }</style><body ng-app="myApp" ng-controller="myControl"><div class="inline" ng-repeat = "option in options"><div class="container"> <dl>  <dd class="selectBoder" ng-click="choseP($index)" ng-value="false">{{option.province}}</dd>  <dt class="selectOption" ng-if="option.ifShowProvince" ng-mouseleave="leaveProvince(option)">  <ul>   <li ng-repeat = " x in province" ng-value="x.value" ng-click="choseProvince($event.target,option)" data-name="{{x.name}}">{{x.name}}</li>  </ul>  </dt> </dl></div><div class="container"> <dl>  <dd class="selectBoder" ng-click="choseC($index)" ng-value="false">{{option.city}}</dd>  <dt class="selectOption" ng-if="option.ifShowCity" ng-mouseleave="leaveCity(option)">  <ul>   <li ng-repeat = "y in option.cities" ng-value="y.value" ng-click="choseCity($event.target,option)" data-name="{{y.name}}">{{y.name}}</li>  </ul>  </dt> </dl></div>  <span class="button" ng-click="addChose($index)">+</span> <span class="button" ng-click="deleteChose($index)">-</span></div></div></body><script type="text/javascript" src="../js/jquery-1.8.3.js"></script><script type="text/javascript" src="../js/angular.min.js"></script><script type="text/javascript"> var app = angular.module('myApp',[]); app.controller('myControl',function($scope){  $scope.ifShowCity = false;  $scope.ifShowProvince = false;  $scope.options =[{index:"0",ifShowCity:false,ifShowProvince:false,province:"",city:"",cities:""}];  $scope.leaveProvince = function(option){   $.each($scope.options,function(index,item){    if(option == $scope.options[index]){     $scope.optionIndex = index;    }   })   $scope.options[$scope.optionIndex].ifShowProvince = false;  }  $scope.leaveCity = function(option){   $.each($scope.options,function(index,item){    if(option == $scope.options[index]){     $scope.optionIndex = index;    }   })   $scope.options[$scope.optionIndex].ifShowCity = false;  }  $scope.choseProvince = function(target,option){   $.each($scope.options,function(index,item){    if(option == $scope.options[index]){     $scope.optionIndex = index;    }   })   $scope.options[$scope.optionIndex].ifShowProvince = false;   $scope.options[$scope.optionIndex].province = target.getAttribute("data-name");   $.each($scope.province,function(index,item){    if(item.value == target.getAttribute("value")){     $scope.options[$scope.optionIndex].cities = item.children;     }    }   )  }  $scope.choseCity = function(target,option){   $.each($scope.options,function(index,item){    if(option == $scope.options[index]){     $scope.optionIndex = index;    }   })   $scope.options[$scope.optionIndex].ifShowCity = false;   $scope.options[$scope.optionIndex].city = target.getAttribute("data-name");  }  function getPrarms(){   return $scope.options;  }  $scope.sub = function(){   getPrarms();  }  $scope.province =    [{   name: "湖北省",   value: "01",   children: [{    name: "武漢",    value: "0101"   }, {    name: "黃岡",    value: "0102"   }, {    name: "荊州",    value: "0103"   }, {    name: "十堰",    value: "0104"   }, {    name: "黃石",    value: "0105"   }, {    name: "鄂州",    value: "0106"   }, {    name: "鹹寧市",    value: "0107"   }, {    name: "襄陽市",    value: "0108"   }   ]  },{   name: "廣東省",   value: "02",   children: [{    name: "廣東",    value: "0201"   }, {    name: "深圳",    value: "0202"   }, {    name: "佛山",    value: "0203"   }, {    name: "惠州",    value: "0204"   }, {    name: "東莞",    value: "0205"   }]   },{    name: "河北省",    value: "03",    children: [{     name: "北京",     value: "0301"    }, {     name: "邯鄲",     value: "0302"    }, {     name: "邢台",     value: "0303"    }, {     name: "保定",     value: "0304"    }, {     name: "秦皇島",     value: "0305"    }    ]}     ]  $scope.choseP = function($index){   $scope.options[$index].ifShowProvince = !$scope.options[$index].ifShowProvince;   $scope.options[$index].ifShowCity = false;  }  $scope.choseC = function($index){   $scope.options[$index].ifShowCity = !$scope.options[$index].ifShowCity;   $scope.options[$index].ifShowProvince = false;  }  $scope.addChose = function($index){   if($scope.options.length < 10){    $scope.options.splice($scope.options.length,0,{ //從最後面新增內容     index:$scope.options.length,ifShowCity:false,ifShowProvince:false    });    $scope.canDelete = true;   }else{    $scope.canAdd = false;   }  }  $scope.deleteChose = function($index){   if($scope.options.length >1){    $scope.options.splice($index,1); //從當前行刪除。   }   if($index == 1){    $scope.canDelete = false;   }  } });</script></html>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.