AngularJS实现的省市二级联动功能示例
本文主要介绍了AngularJS实现的省市二级联动功能,涉及事件监听、响应及页面元素动态操作相关技巧,此外还具备对选项进行增删的功能,需要的朋友可以参考下,希望能帮助到大家。
<!DOCTYPE html> <html> <head> <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"> <p ng-repeat = "option in options"> <p> <dl> <dd ng-click="choseP($index)" ng-value="false">{{option.province}}</dd> <dt 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> </p> <p> <dl> <dd ng-click="choseC($index)" ng-value="false">{{option.city}}</dd> <dt 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> </p> <span ng-click="addChose($index)">+</span> <span ng-click="deleteChose($index)">-</span> </p> </p> </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>
相关推荐:
以上是AngularJS实现的省市二级联动功能示例的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

如何使用WebSocket和JavaScript实现在线语音识别系统引言:随着科技的不断发展,语音识别技术已经成为了人工智能领域的重要组成部分。而基于WebSocket和JavaScript实现的在线语音识别系统,具备了低延迟、实时性和跨平台的特点,成为了一种被广泛应用的解决方案。本文将介绍如何使用WebSocket和JavaScript来实现在线语音识别系

穿越苍茫征途,踏足西游之境!今日,征途IP正式宣布将与央视动画《西游记》展开跨界合作,共同打造一场融合了传统与创新的文化盛宴!此次携手,不仅标志着两大国产经典品牌的深度合作,更彰显了征途系列在弘扬中国传统文化道路上的不懈努力与坚持。征途系列自诞生以来,便凭借其深厚的文化底蕴和多元化的游戏玩法,受到玩家们的喜爱。在文化传承方面,征途系列更是始终保持着对中国传统文化的敬意与热爱,将传统文化元素巧妙地融入游戏,为玩家们带来了更多的乐趣和启发。而央视动画《西游记》则是陪伴了一代又一代人成长的经典之作,其

WebSocket与JavaScript:实现实时监控系统的关键技术引言:随着互联网技术的快速发展,实时监控系统在各个领域中得到了广泛的应用。而实现实时监控的关键技术之一就是WebSocket与JavaScript的结合使用。本文将介绍WebSocket与JavaScript在实时监控系统中的应用,并给出代码示例,详细解释其实现原理。一、WebSocket技

如何利用JavaScript和WebSocket实现实时在线点餐系统介绍:随着互联网的普及和技术的进步,越来越多的餐厅开始提供在线点餐服务。为了实现实时在线点餐系统,我们可以利用JavaScript和WebSocket技术。WebSocket是一种基于TCP协议的全双工通信协议,可以实现客户端与服务器的实时双向通信。在实时在线点餐系统中,当用户选择菜品并下单

如何使用WebSocket和JavaScript实现在线预约系统在当今数字化的时代,越来越多的业务和服务都需要提供在线预约功能。而实现一个高效、实时的在线预约系统是至关重要的。本文将介绍如何使用WebSocket和JavaScript来实现一个在线预约系统,并提供具体的代码示例。一、什么是WebSocketWebSocket是一种在单个TCP连接上进行全双工

网易《阴阳师》手游在今日宣布,阴阳师×初音未来限定联动将于3月6日正式开始。联动限定SSR初音未来(CV:藤田咲)、SSR镜音铃·连(CV:下田麻美)即将降临平安京!联动线上特别演出活动3月9日在游戏内正式开启~

JavaScript和WebSocket:打造高效的实时天气预报系统引言:如今,天气预报的准确性对于日常生活以及决策制定具有重要意义。随着技术的发展,我们可以通过实时获取天气数据来提供更准确可靠的天气预报。在本文中,我们将学习如何使用JavaScript和WebSocket技术,来构建一个高效的实时天气预报系统。本文将通过具体的代码示例来展示实现的过程。We

JavaScript教程:如何获取HTTP状态码,需要具体代码示例前言:在Web开发中,经常会涉及到与服务器进行数据交互的场景。在与服务器进行通信时,我们经常需要获取返回的HTTP状态码来判断操作是否成功,根据不同的状态码来进行相应的处理。本篇文章将教你如何使用JavaScript获取HTTP状态码,并提供一些实用的代码示例。使用XMLHttpRequest
