在我的项目中,我有 2 个版本的 jQuery:1.6.2(用于所有项目)和 1.12.4 用于更新的 javascript。
现在我们需要使用 select2 jquery 插件,我们有以下代码:
jq112 = jQuery.noConflict( true );
var dataSelect = [];
jq112(document).ready(function () {
if (dataSelect.length > 0) {
var select = jq112('<select>').select2({
data: dataSelect
});
jq112('#box').prepend(select);
}
});
但是如果我加载页面,就会出现此错误:
Uncaught TypeError: jq112(...).select2 is not a function
如何将 select2 与 jquery.noConflict() 一起使用?
感谢您的回复
最佳答案
How can use select2 with jquery.noConflict() ?
加载该版本的 jQuery 之后,加载任何其他版本之前加载 select2
:
<script src="jquery-v1.12.js"></script>
<script>
var jq112 = jQuery.noConflict(); // <== Do not pass true
</script>
<script src="select2.js"></script>
<script src="jquery-whatever-other-version.js"></script>
在 noConflict
中不传递 true
的原因是,这将释放 jQuery
符号以及 $
,但插件需要某种方式插入 jQuery(任何像样的插件都使用 jQuery
,而不是 $
来做到这一点)。
in my project I have 2 version of jQuery: 1.6.2 (used on all project) and 1.12.4 used for more recent javascript
强烈建议咬紧牙关将项目的其余部分升级到更新的版本。
关于javascript - select2 和 jQuery.noConflict(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38376678/