项目里需要实现省市区联动选择功能,使用了一个jQuery插件dispicker,记录一下使用过程中遇到的问题和解决办法。

需要要实现的功能就两个:打开modal框时设置地址,点击重置按钮时重置地址

原本以为这是一个非常容易实现的功能,毕竟distpicker有自身赋值的方法,直接多次调用就好了嘛。结果,使用起来才发现自己真是too naive。

  • 前台样式
    <span id="aChange_aDetail">
<select id="aChange_province"></select>
<select id="aChange_city"></select>
<select id="aChange_country"></select>
</span>
  • 调用插件的赋值方法
    $('#aChange_aDetail').distpicker({
province: data.province,
city: data.city,
district: data.country
});

问题就这么猝不及防的来了--同一个js文件里,distpicker的赋值方法只能使用一次!!也就是说我无法多次对distpicker进行赋值。

用到这里的我,尼克杨-头左下方三个小问号-右上方三个小问号.jpg

  • 开始疯狂翻看文档和百度,伟大的互联网冲浪大佬们的解决办法是在初始化之前调用$().dispicker("destroy)方法,即先对当前实例进行销毁
    $('#aChange_aDetail').dispicker("destroy)
$('#aChange_aDetail').distpicker({
province: data.province,
city: data.city,
district: data.country,
placeholder: false
});

于是我满怀信心的任务问题已经被解决的时候,保存,刷新,开始操作

完全没用啊摔!





无奈只能开始暴力操作--你不让我改,我就删了你全家 !!

  • 写一个函数,在每次赋值之前将选择器全部删除在添加
    function distpickerReset() {
var parent = $('#aChange_aDetail').parent('li');
parent.find('#aChange_aDetail').remove();
var dist =
'<span id="aChange_aDetail">' +
'<select id="aChange_province"></select>' +
'<select id="aChange_city"></select>' +
'<select id="aChange_country"></select>' +
'</span>'
parent.append(dist)
}
  • 再在每次赋值前先调用重置函数
    distpickerReset()
$('#aChange_aDetail').distpicker({
...
})

保存,刷新,运行,完美解决

回头一下,我依稀觉得事情不会这么简单,可能是有更官方、更简洁、更高端的解决方法,我却没有发现,谁叫我只是个菜鸡呢

再回头看看自己的博客,短短的文字里飘荡着无数的表情包,我觉得自己可能不止是个菜鸡,还是个神经失常的菜鸡

毕竟菜,才是最纯粹的快乐##

jQuery插件 distpicker实现多次赋值的更多相关文章

  1. 省市区地址三级联动jQuery插件Distpicker使用

    插件下载地址 http://www.jq22.com/jquery-info8054 效果如下: 使用: 1.引入js <script src="http://www.jq22.com ...

  2. jQuery Distpicker插件 省市区三级联动 动态赋值修改地址

    在获取创建页面数据后需要在编辑页面调取之前提交的数据,在使用这个插件后发现无法动态赋值,查找资料后发现需要先销毁实例,$(’#target’).distpicker(‘destroy’); 第一步 引 ...

  3. js最详细的基础,jquery 插件最全的教材

    一.Js的this,{},[] this是Javascript语言的一个关键字,随着函数使用场合的不同,this的值会发生变化.但是有一个总的原则,那就是this指的是调用的函数自己. { } 大括号 ...

  4. jQuery插件之ajaxFileUpload异步上传

    介绍 AjaxFileUpload.js 是一个异步上传文件的jQuery插件,原理是创建隐藏的表单和iframe然后用JS去提交,获得返回值. 下载地址: http://files.cnblogs. ...

  5. jQuery插件编写规范

    第一种方法: 在很多基于jQuery或基于Zepto的插件中,在立即函数执行前面会加上";"这个符号. 这是为了防止前面的其他插件没有正常关闭. 在立即执行函数执行时,会一般会传入 ...

  6. 图片延迟加载jquery插件imgLazyLoading

    实现了图片延迟加载功能,插件代码非常简洁,且每个功能都把注释写得非常详细,适合网友们学习,好好利用哦 引入图片延迟加载Jquery插件文件后,页面使用代码如下: <script type=&qu ...

  7. jQuery 插件autocomplete

    jQuery 插件autocomplete 自动加载 参考: http://www.cnblogs.com/Peter-Zhang/archive/2011/10/22/2221147.html ht ...

  8. 自定义jQuery插件Step by Step

    1.1.1 摘要 随着前端和后端技术的分离,各大互联网公司对于 Mobile First理念都是趋之若鹜的,为了解决网页在不同移动设备上的显示效果,其中一个解决方案就是Responsive Desig ...

  9. 我的第一个jquery插件:下拉多选框

    <!DOCTYPE HTML> <html> <head> <title> New Document </title> <meta n ...

随机推荐

  1. Spring 核心技术与产品理念剖析(上)

    IT 技术发展太快了,就像浪潮一样一波接着一波,朝你迎面扑来,稍不留神就会被巨浪卷至海底而不得翻身.我们必须要学会抓住那些不变的本质或规律,只有这样才能屹立潮头而不倒,乘风破浪,做这个巨变时代的弄潮儿 ...

  2. 使用PaintCode便捷地实现动画效果

    // // ViewController.m // paintCodeTestOC //gif // Created by LongMa on 2019/7/25. // #import " ...

  3. mac eclipse Android开发环境搭建

    http://www.cnblogs.com/macro-cheng/archive/2011/09/30/android-001.html

  4. linux终端界面的字颜色设置

    目录 目录 说明 PS1 颜色语法 保存设置 说明 在网上找了好多资料都不是很详细,要不就是语法有错误. 所以弄了好久才整明白了,写下来方便后面的人学习. 本人linux虚拟机版本为CentOs 6. ...

  5. [TimLinux] TCL 自定义包

    1. 包 很多功能存放在一起,定义为一个包,在iTcl(Incr TCL)之后,可以定义一个类,类可以放在一个包里面,包为一个独立的文件,可以为TCL文件,也可以为C/C++语言实现的动态库. 2. ...

  6. Codeforce-620C

    There are n pearls in a row. Let's enumerate them with integers from 1 to n from the left to the rig ...

  7. 度及拓扑图的使用-UESTC1958学霸周选课

    学霸周选课 Time Limit: 1000 MS     Memory Limit: 128 MB Submit Status 众所周知周大爷不仅编程了得,专业课成绩更是名列前茅,恰巧又到了选课的季 ...

  8. 最全的linux基础命令

    第1章 linux命令 1.1 线上查询及帮助命令 help命令*** help前面接你要查询的命令:例如ls [root@server02 ~]# ls --help 用法:ls [选项]... [ ...

  9. 【Zuul】使用学习

    [Zuul]使用学习 添加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <arti ...

  10. python学习-文件创建读取

    # 文件创建 # 读写# 文件存在?不存在?在操作系统上# 读 read r 写 write w# 打开一个文件# fs = open("xiaojian.txt",encodin ...