```
//頁面布局
<div id="not3ssx">
<select name="province" class="prov dqxl" datatype="*" nullmsg="請選擇地區!"></select>
<select style="margin: 0 -6px;" name="city" class="city dqxl" disabled="disabled" datatype="*" nullmsg="請選擇地區!"></select>
<select name="area" class="dist dqxl" disabled="disabled" datatype="*" nullmsg="請選擇地區!"></select>
</div>
```
*****
```
//調用
<script type="text/javascript">
$('#not3ssx').citySelect();
//或者
$('#not3ssx').citySelect({
prov: '廣東省',
city: '廣州市',
dist: '天河區'
});
</script>
```
*****
*****
```
//功能庫
/*-------------------------------
三級省市聯動
settings 參數說明
-----
url:省市數據josn文件路徑
prov:默認省份
city:默認城市
dist:默認地區(縣)
nodata:無數據狀態
required:必選項
------------------------------ */
(function($){
$.fn.citySelect=function(settings){
if(this.length<1){return;};
// 默認值
settings=$.extend({
url:"city.json",
prov:'請選擇省份',
city:'請選擇城市',
dist:'請選擇地區',
nodata:'none',
required:true
},settings);
var box_obj=this;
var prov_obj=box_obj.find(".prov");
var city_obj=box_obj.find(".city");
var dist_obj=box_obj.find(".dist");
var prov_val=settings.prov;
var city_val=settings.city;
var dist_val=settings.dist;
var select_prehtml=(settings.required) ? "" : "<option value=''>請選擇</option>";
var city_json;
// 賦值市級函數
var cityStart=function(){
var prov_id=prov_obj.get(0).selectedIndex;
if(!settings.required){
prov_id--;
};
city_obj.empty().attr("disabled",true);
dist_obj.empty().attr("disabled",true);
dist_obj.empty().removeAttr("datatype");
dist_obj.empty().removeAttr("nullmsg");
if(prov_id<0||typeof(city_json.citylist[prov_id].c)=="undefined"){
if(settings.nodata=="none"){
city_obj.css("display","none");
dist_obj.css("display","none");
dist_obj.removeAttr("datatype");
dist_obj.removeAttr("nullmsg");
}else if(settings.nodata=="hidden"){
city_obj.css("visibility","hidden");
dist_obj.css("visibility","hidden");
dist_obj.attr("datatype","*");
dist_obj.attr("nullmsg","請選擇區縣");
};
return;
};
// 遍歷賦值市級下拉列表
temp_html=select_prehtml;
$.each(city_json.citylist[prov_id].c,function(i,city){
temp_html+="<option value='"+city.n+"'>"+city.n+"</option>";
});
city_obj.html(temp_html).attr("disabled",false).css({"display":"","visibility":""});
distStart();
};
// 賦值地區(縣)函數
var distStart=function(){
var prov_id=prov_obj.get(0).selectedIndex;
var city_id=city_obj.get(0).selectedIndex;
if(!settings.required){
prov_id--;
city_id--;
};
dist_obj.empty().attr("disabled",true);
if(prov_id<0||city_id<0||typeof(city_json.citylist[prov_id].c[city_id].a)=="undefined"){
if(settings.nodata=="none"){
dist_obj.css("display","none");
dist_obj.removeAttr("datatype");
dist_obj.removeAttr("nullmsg");
}else if(settings.nodata=="hidden"){
dist_obj.css("visibility","hidden");
dist_obj.attr("datatype","*");
dist_obj.attr("nullmsg","請選擇區縣");
};
return;
};
// 遍歷賦值市級下拉列表
temp_html=select_prehtml;
$.each(city_json.citylist[prov_id].c[city_id].a,function(i,dist){
temp_html+="<option value='"+dist.s+"'>"+dist.s+"</option>";
});
dist_obj.html(temp_html).attr("disabled",false).css({"display":"","visibility":""});
dist_obj.attr("datatype","*");
dist_obj.attr("nullmsg","請選擇區縣");
};
var init=function(){
// 遍歷賦值省份下拉列表
temp_html=select_prehtml;
$.each(city_json.citylist,function(i,prov){
temp_html+="<option value='"+prov.p+"'>"+prov.p+"</option>";
});
prov_obj.html(temp_html);
// 若有傳入省份與市級的值,則選中。(setTimeout為兼容IE6而設置)
setTimeout(function(){
if(settings.prov!=null){
prov_obj.val(settings.prov);
cityStart();
setTimeout(function(){
if(settings.city!=null){
city_obj.val(settings.city);
distStart();
setTimeout(function(){
if(settings.dist!=null){
dist_obj.val(settings.dist);
};
},1);
};
},1);
};
},1);
// 選擇省份時發生事件
prov_obj.bind("change",function(){
cityStart();
});
// 選擇市級時發生事件
city_obj.bind("change",function(){
distStart();
});
};
// 設置省市json數據
if(typeof(settings.url)=="string"){
$.getJSON(settings.url,function(json){
city_json=json;
init();
});
}else{
city_json=settings.url;
init();
};
};
})(jQuery);
```
- 我的爛筆頭
- 1、常用功能方法整合
- 2、jQuery基本函數
- 3、在頁面中添加圖片
- 4、精度算法
- 5、圖片懶加載
- 6、彈窗拖拽功能
- 7、彈幕功能
- 8、鼠標滾動事件
- 9、獲取頁面相關屬性
- 10、彈窗的三種展現方式
- 11、輪播功能
- 12、獲取唯一標識
- 13、CSS樣式效果
- 14、任意兩點的動態連線
- 15、全新接口功能
- 16、適配兼容
- 17、無刷新頁面更改URL
- 18、定時器的那些事
- 19、關于iframe的常見問題
- 20、設置不同的時間
- 21、關于select-option
- 22、省市級聯
- 23、省市級聯數據
- 24、關于數據傳輸問題
- 25、問題分支
- 那些年我們一起走過的神坑
- 1、關于console的使用
- 2、關于數組
- 1、數組的賦值
- 2、數組的常用方法
- 3、關于移動端的bug
- 4、關于視頻的bug
- 5、那些坑坑洼洼
- 6、關于字符串
- 1、字符串的常用方法
- 頁面布局
- 1、背景固定的滾動頁面
- 心得
- Node.js
- 1、安裝環境
- ThinkPHP 5.1
- 1、訪問格式