亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

DIV+CSS+jQ實現省市聯動可擴展

2019-11-20 09:37:39
字體:
來源:轉載
供稿:網友

公司的省市縣數據比較坑爹,是通過ehr系統那邊生成ID來匹配,比如福建省 對應ID 01211014AOP145,城市也對應一個ID,然后區縣就不管了。然后我就網上找了一堆資源 插件什么的感覺都不適用就決定自己寫一個。因為自己也是半桶水的那種界面都不知道怎么弄,弄哪種格式,什么風格,配色啊。就默默的找了京東、亞馬遜、淘寶、當當等他們關于省市區是怎么做的。圖如下:

圖片







最后我結合一下做了如下圖:

廢話不多說上源碼:

<style type="text/css"> #divProCity { position:absolute; width:350px; max-height:220px; height:auto; display:none; border:1px solid #d3d3d3; z-index:100; overflow:auto; overflow-x:hidden; } .headMenu { height: 34px; background: #f6f6f6; margin: 0; padding: 0; } .headMenu li { float:left; text-align:center; width:60px; height: 32px; list-style:none; background: #f6f6f6; line-height: 32px; font-size: 13px; cursor: pointer; } .headMenu li.liDefault { background: #F60; color: #fff; margin: 0; padding: 0; } .liDiv1, .liDiv2 { height: auto; min-height:30px; border-top: 2.5px solid #F60; margin-top: -2px; } .liDiv3 { height:auto; min-height:30px; max-height:200px; border-top: 2px solid #F60; margin-top: -2px; } .liDiv2,.liDiv3 { display: none; } .liDiv1 ul, .liDiv2 ul { padding: 2px; margin: 0; clear:both; } .liDiv3 ul { padding: 2px; margin: 0; clear:both; } .liDiv1 ul li, .liDiv2 ul li { float:left; font-size: 14px; width:60px; line-height:180%; list-style:none; color: #252525; margin: 0 4px; cursor:pointer; text-align:center; } .liDiv3 ul li { float:left; font-size: 13px; line-height: 150%; color: #252525; margin: 1px 3px; list-style: none; cursor:pointer; text-align:center; } .liDiv1 ul li:hover, .liDiv2 ul li:hover,.liDiv3 ul li:hover { color: #8b51cb; cursor: pointer; text-decoration: none; padding: 0; background:#ccc; } .btn_img1 { width:20px; vertical-align:middle; margin-left:-31px; border:none; outline:none; height:10px; cursor:pointer; background:url(images/img_1.png) no-repeat center center; z-index:10; } .btn_img2 { margin-left:-31px; margin-bottom:2px; width:20px; height:10px; border:none; outline:none; vertical-align:middle; cursor:pointer; background:url(images/img_2.png) no-repeat center center; z-index:10; } </style> 

頁面布局:

<head> <title>省市二級聯動可擴展性</title> <script type="text/javascript" src="Scripts/jquery-1.9.1.min.js"></script> </head> <body> <label>選擇是否出國:</label> <input type="radio" name="radio1" value="1" />國內 <input type="radio" name="radio1" value="2" />國外<br /><br /> <label>查詢省市聯動:</label> <input type="text" id="txt_proCity" onkeyup="GetOutCounty()" readonly="readonly" runat="server" /> <input type="button" id="btnImg" class="btn_img1" name="img1" onclick="changeImg()" /><br /> <label>顯示位置:</label><br /> <div id="divProCity"> <ul class="headMenu"> <li class="liDefault">省份</li> <li>城市</li> [html] view plain copy<li>國外</li> </ul> <div class="liDiv1"> <ul> <li>福州福州</li> <li>福州福州</li> <li>福福州州</li> <li>福州福州</li> <li>福福州州</li> <li>福建</li> <li>安徽</li> <li>福州</li> <li>福州</li> <li>福州</li> <li>福建</li> <li>安徽</li> <li>福州</li> <li>福州</li> <li>福州</li> <li>福建</li> <li>安徽</li> <li>福州</li> <li>福州</li> <li>福州</li> <li>福建</li> <li>安徽</li> <li>福州</li> <li>福州</li> <li>福州</li> <li>福建</li> <li>安徽</li> <li>福州</li> <li>福州</li> <li>福州</li> <li>福建</li> <li>安徽</li> <li>福州</li> <li>福州</li> <li>福州</li> </ul> </div> <div class="liDiv2"> <p style="text-align:center;color:#F60"><strong>請先選擇省份!</strong></p> </div> 

腳本:

<script type="text/javascript"> $(document).ready(function () { $('#divProCity ul.headMenu li').click(function () { var index = $(this).index(); //國外點擊無效 if (index == 2) { return false; } $(this).addClass("liDefault").siblings().removeClass("liDefault"); $('#divProCity').children('div').eq(index).show().siblings('div').hide(); }); }) //選擇國內國外 $("[name$=radio1]").click(function () { var value = $(this).val(); //更改國外國內時重置省市的值為空,圖標還原,關閉彈層,判斷輸入框是否可以編輯 $("input[id*=txt_proCity]").val(''); $('#btnImg').attr("class", "btn_img1"); $('#btnImg').attr("name", "img1"); //給切換圖片做標記的 $('#divProCity').css("display", "none"); if (value == 2) {//國外 $('#txt_proCity').removeAttr("readonly"); } else { $('#txt_proCity').attr("readonly", "readonly"); } }) //出國模糊查詢 function GetOutCounty() { //border: 1px solid #d3d3d3;background: #f6f6f6;備用顏色background: #f7f7f7; var txt = $("input[id*=txt_proCity]"); if (txt.val().trim()== "") { return false; } var height = txt.height(); var x = txt.offset().top; var y = txt.offset().left; $('#divProCity').css({ display: "block", left: y + "px", top: x + height + 8 + "px" }); $('#divProCity ul.headMenu li').eq(2).show().css("width", "70px").addClass("liDefault").siblings().hide(); $('#divProCity').children('div').eq(2).show().siblings('div').hide(); $('#btnImg').attr("class", "btn_img2"); $('#btnImg').attr("name", "img2"); //給切換圖片做標記的 //模糊查詢相關代碼 var ss = "<ul><li>福州福州</li><li>福州福州</li><li>福福州州</li><li>福州福州</li></ul>"; $('.liDiv3').html(''); $('.liDiv3').html(ss); } //根據國內國外 點擊右邊按鈕加載 function changeImg() { var _selectValue = $("input:checked[name$=radio1]").val(); if (_selectValue == "" || _selectValue==undefined) { alert("請先選擇是否出國!"); return false; } var txt = $("input[id*=txt_proCity]"); var height = txt.height(); var x = txt.offset().top; var y = txt.offset().left; var name = $('#btnImg').attr("name"); if (name == "img1") { $('#btnImg').attr("class", "btn_img2"); $('#btnImg').attr("name", "img2"); $('#divProCity').css({ display: "block", left: y + "px", top: x + height + 8 + "px" }); //1國內 2國外 控制面板菜單項顯示 if (_selectValue == 1) { $('#divProCity ul.headMenu li').eq(2).hide().siblings().show(); $('#divProCity').children('div').eq(0).show().siblings('div').hide(); } else { $('#divProCity ul.headMenu li').eq(2).show().css("width","70px").addClass("liDefault").siblings().hide(); $('#divProCity').children('div').eq(2).show().siblings('div').hide(); } } else { $('#btnImg').attr("class", "btn_img1"); $('#btnImg').attr("name", "img1"); $('#divProCity').css("display","none"); } } </script> 

邏輯就是要先選國內或者國外,三角形就是圖片,不是h5 canvas畫出來的,這種圖片網上多的是。

1、我用input 類型button 作為圖片容器,用img圖片居然出不來(可能我水吧)。input有默認樣式按鈕點擊外面有藍色的邊框,要去掉outline:none;不要像我一樣寫成out-line

2、感覺自己在寫面向過程一樣,按三角形加載全部信息,切換圖片,再點圖片就關閉成。里面有些邏輯就是自由擴展,不要國外的就把國外有關代碼刪掉,要擴展就添加類似 省 市。

3、動態加載數據就是 比如 省份 對應的div 類名為liDiv1,它的盒子結構

<div class="liDiv1> <ul> <li></li> </ul> </div>var ss = "<ul><li>福州福州</li><li>福州福州</li><li>福福州州</li><li>福州福州</li></ul>";$('.liDiv3').html(''); //添加前先清空$('.liDiv3').html(ss);

動態數據 ss 可以通過ajax獲取數據庫數據 經過后臺遍歷拼接

var ss= <ul><li id="01211014AOP145" onclick="getLi(this)" >福建省</li></ul>

比如說以下是 .net 的寫法(寫的比較low不要介意)把他傳到前端 ajax接收返回的值,直接append到$('.liDiv3').html(ss);就獲取到動態數據

if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { strBuild.Append("<table id=/"tableShow/" class=/"gridtable/" cellspacing='0' >"); //strBuild.AppendFormat("<tr><div class=/"dialogTitle1/">" + title3+ "</div><tr>"); foreach (DataRow dr in ds.Tables[0].Rows) { strBuild.Append("<tr id='" + dr["VALUE"] + "' onmouseover=/"this.bgColor='#FAEBD7'/" onmouseout=/"this.bgColor=''/" onclick=/"ClickOnWorkPlace(this)/" >"); strBuild.AppendFormat("<td >{0}</td>", dr["name"].ToString()); strBuild.Append("</tr>"); } strBuild.Append("</table>"); } 

獲取數據,點擊福建省 就可以寫通用的click事件,后臺拼接的onclick="getLi(this)"

在前端就寫上

function getLi(obj){ var id=$(obj).attr("id"); var text=$(obj).text(); //可以通過省份id 寫ajax去獲取市的數據 }

然后這樣就獲取到省份的 text id ,通過click事件可以獲取到 城市的數據 同樣加載 id和text。在拼接文本到 最上面的輸入框就是最終結果 (這個還沒寫,很簡單,懶癌發作了不想寫了),對了上面的文本已經設置了只讀readonly,說到只讀 就要說到 readonly 和disabled 的區別了,readonly只對 輸入框還有多文本輸入框有效,而且文本樣式不會更改。disabled 基本試用與所有元素,但是要注意的它的兼容性。上面的文本框設置了runat屬性 是為了方便.net后臺直接讀取數據。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91夜夜未满十八勿入爽爽影院| 亚洲a在线播放| 91高潮在线观看| 在线精品播放av| 亚洲性线免费观看视频成熟| 欧美在线一区二区三区四| 91精品国产91久久久久久| 国产亚洲欧美日韩一区二区| 国产午夜精品全部视频播放| 国产亚洲激情在线| 中日韩美女免费视频网站在线观看| 久久色在线播放| 亚洲欧洲视频在线| 国产成人精品优优av| 欧美高清第一页| 国产精品久久一区| 亚洲第一区中文字幕| www.日韩视频| 神马久久久久久| 九九精品视频在线观看| 性欧美xxxx视频在线观看| 亚洲美女视频网| 欧美日韩成人黄色| 国产精品日韩欧美| 亚洲国产精品成人精品| 国产免费一区二区三区在线观看| 国产精品99久久久久久久久| 欧美性极品少妇精品网站| 91啪国产在线| 久久99青青精品免费观看| 国产亚洲xxx| 国产精品高潮呻吟视频| 一区二区三区亚洲| 日韩在线观看av| 欧美成人免费全部| 国产精品视频精品| 欧美大片在线看| 91网在线免费观看| 国产视频亚洲精品| 97激碰免费视频| 欧美最猛性xxxxx亚洲精品| 麻豆国产va免费精品高清在线| 成人黄色av播放免费| 久久久精品视频成人| 亚洲欧洲在线视频| 国产伦精品免费视频| 国产成人精品久久亚洲高清不卡| 欧美野外wwwxxx| 精品欧美一区二区三区| 国内免费精品永久在线视频| 久久久久999| 欧美激情一区二区三区久久久| 最新69国产成人精品视频免费| 久久人人爽人人爽人人片av高清| www国产精品com| 国内精品模特av私拍在线观看| 欧美视频免费在线观看| 国内精品久久久久久久久| 亚洲日韩中文字幕| 国产日本欧美一区二区三区| 亚洲精品影视在线观看| 日韩欧美成人区| 久久久91精品国产一区不卡| 久久露脸国产精品| 色婷婷av一区二区三区久久| 欧美一区二区三区图| 91久久国产婷婷一区二区| 国产成人午夜视频网址| 午夜精品国产精品大乳美女| 久久久久久久国产| 成人黄色av网站| 国产精品久久久999| 亚洲国产91精品在线观看| 国产日韩精品在线观看| 日韩av色在线| 中文字幕亚洲激情| 最近2019年中文视频免费在线观看| 国产欧美日韩丝袜精品一区| 国模极品一区二区三区| 国产精品中文字幕在线| 欧美激情极品视频| 国产精品久久久久福利| 久青草国产97香蕉在线视频| 久久中文字幕一区| 日韩高清有码在线| 久久久久国色av免费观看性色| 最近2019年手机中文字幕| 欧美另类69精品久久久久9999| 欧美性极品少妇精品网站| 黑人巨大精品欧美一区二区三区| 中文.日本.精品| 日本三级久久久| 日韩影视在线观看| 国产精品私拍pans大尺度在线| 久久精品影视伊人网| 欧美俄罗斯性视频| 亚洲精品午夜精品| 亚洲xxxxx性| 欧美激情手机在线视频| 国产丝袜一区二区| 日韩在线激情视频| 美女黄色丝袜一区| 欧美天天综合色影久久精品| 亚洲精品videossex少妇| 国产日韩精品在线| 2019国产精品自在线拍国产不卡| 国产精品久久久久久久久影视| 国产成人亚洲精品| 日本成人精品在线| 日本中文字幕久久看| 好吊成人免视频| 亚洲成色www8888| 日韩在线精品一区| 久久久国产精彩视频美女艺术照福利| 欧美自拍视频在线观看| 精品一区二区三区四区| 亚洲free性xxxx护士hd| 2018日韩中文字幕| 法国裸体一区二区| 久久99久久99精品中文字幕| 草民午夜欧美限制a级福利片| 51精品在线观看| 米奇精品一区二区三区在线观看| 亚洲精品小视频在线观看| 国产精品男人的天堂| 欧美精品手机在线| 成人性生交大片免费看视频直播| 国产偷亚洲偷欧美偷精品| www高清在线视频日韩欧美| 亚洲天天在线日亚洲洲精| 91探花福利精品国产自产在线| 欧美日韩久久久久| 亚洲精品久久久久中文字幕二区| 91免费看片在线| 国产人妖伪娘一区91| 伊人一区二区三区久久精品| 国产做受高潮69| 91精品久久久久久久久久久| 欧美日韩美女在线| 91中文在线视频| 国产精品久久久久久久久免费| 欧美黄色小视频| 久久亚洲欧美日韩精品专区| 久久久国产在线视频| 亚洲第一福利视频| 日韩美女毛茸茸| 欧美日韩第一视频| 国产深夜精品福利| 在线一区二区日韩| 国产精品白丝av嫩草影院| 国产精品黄页免费高清在线观看| 国产精品色婷婷视频| 91精品中国老女人| 中文字幕亚洲欧美日韩2019| 美女福利视频一区| 国内免费久久久久久久久久久| 亚洲欧美日韩成人| 亚洲女人天堂视频| 亚洲日本中文字幕免费在线不卡| 欧美日韩aaaa| 国产91成人在在线播放| 欧美日韩国产综合新一区| 亚洲精品视频在线观看视频| 亚洲精品在线不卡|