select2和jQuery.noConflict()

时间:2016-07-14 14:18:20

标签: javascript jquery select2

在我的项目中我有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

如何在jquery.noConflict()中使用select2?

感谢您的回复

1 个答案:

答案 0 :(得分:1)

  

如何将select2与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>

未在true中传递noConflict的原因是,它会释放jQuery符号以及$,但插件需要一些插入jQuery的方式(任何体面的插件都使用jQuery,而不是$)。

  

在我的项目中我有2个版本的jQuery:1.6.2(用于所有项目)和1.12.4用于更新的javascript

强烈建议咬一口将项目的其余部分升级为更新的东西。