Chosen.jquery.js目前版本v1.6.2,官方文档链接https://harvesthq.github.io/chosen/

插件有一个css文件和一个js文件,都命名为Chosen,引入之后,在自己的js文件中调用.chosen()方法即可。

<select class="chosen-select" data-placeholder="选择选项" style="width:150px"><option value=-1></option><option value="选项一">选项一</option><!--选项有多少写多少-->
</select>

说明:如果要显示placeholder里的内容,那第一个选项要为空,value=-1就好了。
写好select之后就在对应的js文件里书写

$('.chosen-select').chosen();

如果要设置参数,可以这么写:

$('.chosen-select').chosen({no_results_text: "这是搜索无果的提示信息!",disable_search_threshold: 10,//选项小于10时不显示搜索框max_selected_options: 5//多选情况下最多能选5个
});

多选时select标签多加一个multiply属性即可。单选时还可以设置其他chosen()方法的参数,这里不详述了。

关于异步动态加载选项数据导致的下拉列表为空的问题

对照文档给出的示例的原html文件和火狐浏览器开发者模式下看到的页面加载后的html文件,就会发现Chosen插件将原select标签隐藏了(display:none),同级多了一个div,这里放了两个ul标签,一个用来放input标签(搜索框),另一个用来把select标签中的options都读过来,写在li中。使用时真正被下拉展示的是这个div里的内容。

我写的时候用$.getJSON(url,[data],[function])这个方法进行调用,function中将获取的data用循环写在select的option中。因为初次使用的关系,以为和AJAX不同,毕竟这里没有看到设置同步还是异步的选项。于是在使用了Chosen插件后出错。能够在开发者模式下查看到html被更改的元素,select虽然隐藏,但其中的option确实填充了。而且两个ul也全部在,只是第二个ul中没有li

后来用console.log()方法来查看执行顺序,虽然$.getJSON方法我写在js文件头部,$('.chosen-select').chosen()写在文件尾部,但执行时仍然先执行.chosen()前的console.log()方法再执行$.getJSON()的function中的console.log()方法。

我的解决办法是:把$('.chosen-select').chosen()写在$.getJSON()的function中,在填充完option选项之后,调用对应的chosen()方法,此时页面再点击下拉就不会有问题了。

目前我只有这种方法,但如果大家有其他的解决方法,希望能留言告诉我,谢谢。

【jquery】Chosen.jquery.js 插件动态加载数据问题相关推荐

  1. js插件动态加载js、css解决方案

    最近因为工作需要做了一个js自动导入的插件,一开始很天真的以为动态创建个script添加到head中就ok了,试了之后才发现了问题,就是如果同时引入了多个js文件,而且后一个文件中用到了前一个文件中的 ...

  2. Bootstrap弹出框(Popover)插件动态加载数据

    效果 鼠标点击输入框弹出提示内容,内容是根据输入的字符动态加载的,效果如图: HTML <input type="text" class="form-control ...

  3. JS ListBox动态加载数据

    因项目需要,需要从listbox取出部分信息进行加载.原理为当body初始化时将全部数据保存到一个隐藏的listbox中,通过在body指定onload执行的函数.当用户选择部门时,首先将所有的数据项 ...

  4. swiper支持动态加载数据

    用swiper插件动态加载数据:动态获取完数据之后,在初始化swiper. 1.在<head>标签里面加入swiper的css和js文件 <link rel="styles ...

  5. 使用jquery的load方法设计动态加载,并解决被加载页面JavaScript失效问题

    使用jquery的load方法设计动态加载,并解决被加载页面JavaScript失效问题 参考文章: (1)使用jquery的load方法设计动态加载,并解决被加载页面JavaScript失效问题 ( ...

  6. html动态加载js方法,原生JS实现动态加载js文件并在加载成功后执行回调函数的方法...

    本文实例讲述了原生JS实现动态加载js文件并在加载成功后执行回调函数的方法.分享给大家供大家参考,具体如下: 有的时候需要动态加载一个javascript文件,并且在加载成功后执行回调函数(例如文件中 ...

  7. Unity3D的uniSWF插件动态加载SWF UI资源

    uniSWF能把Flash的素材像用AS3编程类似,只不过环境要在C#或者JS中编程.要是想创建一个类似Menu菜单或者像导航一样的菜单,在Unity中首先要选择摄像机,给摄像机添加MovieClip ...

  8. python爬取js加载的数据_JS动态加载数据不会爬?老司机教你两个方法爬取想要的数据...

    学习Python的人绝大部分都是在用Python做爬虫,毕竟对于爬虫而言Python是不二选. 但是一般简单的静态页面网站还是很好爬取的,对于很多动态加载的网站就不知道怎么办了,今天小编就给大家介绍两 ...

  9. js的动态加载、缓存、更新以及复用(四)

    本来想一气呵成,把加载的过程都写了,但是卡着呢,所以只好在分成两份了. 1.页面里使用<script>来加载 boot.js . 2.然后在boot.js里面动态加载 bootLoad.j ...

最新文章

  1. swift3.0调用相册
  2. 慧荣科技获GSA年度大奖
  3. docker 删除所有未启动的容器_Docker 镜像容器常用操作(让我们用 docker 溜得飞起)...
  4. 进阶阿里架构师:算法、编程语言、数据库、架构设计!书单推荐!
  5. Docker 使用 docker push 命令 推送本地镜像到远程DockerHub仓库服务器
  6. css3---( 框架)
  7. 运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(五)
  8. Fastdfs分布式文件系统的应用
  9. HugeTLB Pages大页内存
  10. linux nslookup 解析不到dns_网络工程师之nslookup命令
  11. springboot线程池
  12. Ubuntu20.04更换阿里源教程
  13. java指纹识别+谷歌图片识别技术
  14. crosses initialization of “XXX”
  15. 下次激活策略10_陈金凌:年流量1-10万独立站关键词策略案例(1)
  16. 手动档科目三考试过程
  17. POJ Treasure Exploration 【DAG交叉最小路径覆盖】
  18. ABBA(组合数学/dp)
  19. 2022安全员-C证特种作业证考试题库及答案
  20. Excel如何批量将文本型数值转为数值

热门文章

  1. 计算机系统基础学习笔记(7)-缓冲区溢出攻击实验
  2. 局域网内通过ip获取主机名
  3. 多目标优化系列(四)RM-MEDA
  4. linux pppd源码下载_linux pppd脚本配置(转载)
  5. layui分页和模板引擎
  6. 鸿蒙开发入门 | 开发第一个鸿蒙应用+页面跳转
  7. 电脑硬件升级完全解决方案2
  8. 基于Vue开发的电商APP项目(仿蘑菇街)
  9. 抖音、快手、B站的广告投放原理
  10. vba中取小数点后两位数_如何在Excel中提取小数点后面的数字?