2016-07-14 48 views
1

在我的項目中我有2個版本的jQuery:1.6.2(用於所有項目)和1.12.4用於更新的javascript。select2和jQuery.noConflict()

現在,我們需要使用選擇2 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 

如何使用選擇2與jquery.noConflict ()?

感謝您的答覆

回答

1

How can use select2 with jquery.noConflict() ?

負載select2加載該版本的jQuery,加載任何其他前後:

<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

強烈建議咬住子彈將項目的其餘部分升級到更新的東西。