基于jquery实现的地址选择器,支持省、市、区、乡镇、社区5级联动(可自定义配置15级联动)
一个jquery地址选择器,使用很简单
1、文件目录结构如下:
address_picker/
├── js
├── address-picker.js (compressed)
├── css
├── address-picker.css (compressed)
└── data
├── data.js (省市区三级json数据)
2、将dist文件夹下的三个文件夹放进项目(注意不要改变css或js文件的相对位置)
3、在html中引入js文件
<script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script>
<script src="<%=basePath%>address-picker/js/address-picker.js" type="text/javascript"></script>
4、想让弹出地址面板展示在哪个页面元素下,就传入该元素的id,可以是任意元素(比如div/span/button...之类的)
以一个span举例:
<span id="address_picker_text">选择地址</span>
5、快速使用
var addressPicker1 = new addressPicker("address_picker_text");//默认展示三级联动
6、自定义参数
var addressPicker1 = new addressPicker({
id: "address_picker_text", //想要展示在哪个页面元素下
level: 3, //设置几级联动,默认3,可支持1-5
levelDesc: ["省份", "城市", "区县", "乡镇", "社区"], //每级联动标题展示文字,默认如左显示
index: "996", //浮动面板的z-index,默认`996`
separator: " / ", //选择后返回的文字值分隔符,例如`四川省 / 成都市 / 武侯区`,默认` / `
isInitClick: true, //是否为元素id自动绑定点击事件,默认`true`
isWithMouse: false, //浮动面板是否跟随鼠标点击时坐标展示(而不是根据元素id的坐标).默认`false`
offsetX: 0, //浮动面板x坐标偏移量,默认`0`
offsetY: 0, //浮动面板y坐标偏移量,默认`0`
emptyText: "暂无数据", //数据为空时展示文字,默认'暂无数据'
color: "#56b4f8", //主题颜色,默认#56b4f8
fontSize: '14px', //字体大小,默认14px
isAsync: false, //是否异步加载数据,默认false,如果设置true的话asyncUrl必传
asyncUrl: "", //异步加载url,data数据将无效
btnConfig: [], //面板下方展示的自定义按钮组,格式见后面说明。默认不传
data: "" //┌──未指定isAsync的时候以data为准,一次性加载所有数据
//├──可不传,默认使用`data`文件夹下的三级数据json文件
}); //└──支持传入json文件路径(数据类型为string)或是数据本身(数据类型为object)
7、事件方法
show()显示面板
hide()隐藏面板
refreshData(data) 重新载入地址data
on(type,function) 绑定地址选择面板事件
getCurrentObject() 获取当前点击节点数据
getTotalValueAsText() 获取所有选择节点的文本字符串
getTotalValueAsArray() 获取所有选择节点的数组结构
clearSelectedData() 清除所有选中值
setSelectedData(arr) 设置选中值
8、config详解
8.1 初始化data数据格式
8.1.1 为空或不传,默认使用本插件自带的data文件夹下的json数据(来源于民政部和国家统计局公开的全国地址数据)
8.1.2 字符串,自己项目的json文件路径,格式要求参考data文件夹下的json文件
8.1.3 object,要有name、code、children三个节点,形如[{name:'',code:'',children:[{name:'',code:''}]}]
8.2 asyncUrl返回数据格式
8.2.1 当isAsync为true且asyncUrl不为空时,切换为异步模式
8.2.2 初始化(new addressPicker)的时候会发起第一层数据的请求,以后点击每层里面的数据会发起下一层的请求
8.2.3 请求数据格式示例{"code":"11", "name":"北京市", "level":1},第一次请求的时候code和name为空
8.2.4 返回下一层数据的格式示例{code:"1101",name:"市辖区"}
8.3 按钮组btnConfig数据格式
8.3.1 可不传,默认无按钮
8.3.2 传参格式[{text:'按钮名称',click:按钮点击事件function}],最多传3个按钮
8.3.3 示例代码:
function fnTest() {
alert("按钮2点击事件");
}
var btnConfig = [{
text: '清除数据',
click: function() {
address_picker.clearSelectedData();
$("#address_picker_text").text("选择地区");
}
},
{
text: '按钮2',
click: fnTest
}
];
点我咨询
一、用户注册、登陆,视为接受本协议的约束。
二、用户承诺遵守国家的法律法规及部门规章
三、用户承诺遵守“313组件库”的知识产权政策.
四、站内插件用于行业交流、学习。
五、用户侵犯第三人的知识产权,由该用户承担全部法律责任。
313组件库(www.yu313.cn)站内所有涉及插件及代码由会员或站主上传而来,313组件库不拥有会员上传的插件及代码的版权
313组件库作为网络服务提供者,对非法转载,盗版行为的发生不具备充分的监控能力。但是当版权拥有者提出侵权指控并出示充分的版权证明材料时,313组件库负有移除盗版和非法转载作品以及停止继续传播的义务。313组件库在满足前款条件下采取移除等相应措施后不为此向原发布人承担违约责任或其他法律责任,包括不承担因侵权指控不成立而给原发布人带来损害的赔偿责任。
如果版权拥有者发现自己作品被侵权,请及时向313组件库提出权利通知,并将姓名、电话、身份证明、权属证明、具体链接(URL)及详细侵权情况描述发往版权举报专用通道,313组件库在收到相关举报文件后,在3个工作日内移除相关涉嫌侵权的内容
QQ:515184405(周一到周五,9:30-18:00)