多选择下拉框Chosen插件与jQuery版本不兼容问题解决方案咨询
jQuery 3.4.1 适配Chosen插件的解决方案
下面给你几个经过社区验证的实用解决思路:
使用社区维护的Chosen兼容版本
原Chosen官方更新较慢,但不少开发者已经fork项目并修复了jQuery 3.x的兼容问题。你可以找到这类适配后的版本,替换原有插件的chosen.jquery.min.js和对应CSS文件,初始化代码无需改动即可直接使用。用jQuery Migrate插件过渡
jQuery Migrate 3.x专门用于兼容旧版jQuery API,能让依赖bind()、unbind()这类废弃方法的插件在3.4.1环境下正常运行。注意引入顺序:先加载jQuery 3.4.1,再加载Migrate,最后加载Chosen。示例代码:<script src="jquery-3.4.1.min.js"></script> <script src="jquery-migrate-3.4.0.min.js"></script> <script src="chosen.jquery.min.js"></script> <link rel="stylesheet" href="chosen.min.css">这种方式无需修改任何插件源码,实现成本最低。
手动修改Chosen源码兼容
如果不想依赖Migrate,可直接修改Chosen源码适配jQuery 3.x,主要处理几类废弃API:- 将所有
bind()调用替换为on(),unbind()替换为off(); - 移除或替换
$.browser相关代码(jQuery 3.x已删除该属性),改用navigator.userAgent做浏览器检测; - 把
$(element).size()替换为$(element).length。
修改后重新压缩代码即可使用。
- 将所有
替换为兼容jQuery 3.x的同类插件
若上述方法都嫌麻烦,直接更换活跃维护的同类插件更省心,比如Select2、Selectize.js,它们原生支持最新jQuery版本,功能和Chosen类似甚至更丰富。以Select2为例,多选初始化代码如下:$('select[multiple]').select2({ placeholder: "请选择选项" });
内容的提问来源于stack exchange,提问作者sidhique kerala
相关产品推荐
相关产品推荐

