项目里需要实现省市区联动选择功能,使用了一个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. __getattribute__(self, obj) 这个方法中的obj这个参数

    class Itcast(object): def __init__(self, subject1): self.subject1 = subject1 print("^^^^^^^---- ...

  2. 一道Java程序输出题(继承-重载-覆盖-向上转型的问题)

    class A { public String show(D obj) { // func1 return ("A and D"); } public String show(A ...

  3. luogu P2345 奶牛集会 |排序+树状数组

    题目描述 约翰的N 头奶牛每年都会参加"哞哞大会".哞哞大会是奶牛界的盛事.集会上的活动很多,比如堆干草,跨栅栏,摸牛仔的屁股等等.它们参加活动时会聚在一起,第i 头奶牛的坐标为X ...

  4. HDU3870- intervals(差分约束)

    You are given n closed, integer intervals [ai, bi] and n integers c1, ..., cn. Write a program that: ...

  5. Appium之环境搭建

    Appium:是开源.跨平台.多语言支持的移动应用自动化工具 测试对象主要有:① 原生app ② 混合app(h5 + web前端基础) ③ 移动web app 测试对象APPy运行平台:  ① io ...

  6. Redis第二讲【Redis基本命令和五大数据结构】

    [二.Redis基本命令和五大数据结构] redis的基础知识和命令 redis 是一个单进程(包装epoll函数来对读写事件进行相应) 默认有16个数据库,初始使用的数据库为0号库 默认端口为637 ...

  7. 【React】345- React v16.9 新特性[译]

    今天我们发布了 React 16.9.它包含了一些新特性.bug修复以及新的弃用警告,以便与筹备接下来的主要版本. 一.新弃用 重命名 Unsafe 生命周期方法 一年前,我们宣布 unsafe 生命 ...

  8. HTTP 错误 500.19 - Internal Server Error 错误代码 0x80070005 由于权限不足而无法读取配置文件

    HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效. 模块 IIS Web Core 通知 未知 处理程序 尚未确定 错误代码 ...

  9. 201871010119-帖佼佼《面向对象程序设计(java)》第六—七周学习总结

    博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.co ...

  10. Spring Ioc Configration - Annotation

    1.配置类注解@Configuration. 2.Bean注解 @Bean. 3.导入其他配置类@Import. 4.回调函数 @Bean(initMethod = "init", ...