用例
我在jstree和jquery-ui datepicker之間有衝突。使用不同版本的jQuery
我想在AJAX請求後注入DOM中的輸入上使用jquery-ui-datepicker。
我使用jsTree 3.3,它使用jQuery 3.1.1和jQueryUI v1.12.1,它使用jQuery 1.12.4。 問題
當我嘗試調用$('#datepicker').datepicker()
,它拋出一個TypeError
(...)。日期選擇器是不是一個函數
我到目前爲止已經試過
根據很多其他話題,包括以下兩種:
datepicker與jstree或multi之間的衝突PUL
穿上動態創建的元素日期選擇器() - JQuery的/ jQueryUI的
我的代碼看起來像這樣:
HTML:
<script src="{% static 'Syc/js/jquery.js' %}"></script>
<script src="{% static 'Syc/js/jquery-old.js' %}"></script> <!-- version1.12.14-->
<script src="{% static 'Syc/js/jquery-ui/jquery-ui.js' %}"></script>
<script src="{% static 'Syc/Jstree/dist/jstree.min.js' %}"></script>
的Javascript:
$(document).on('focus', "[id^='Date']", function() {
var jQ = jQuery.noConflict(true);
jQ.getScript('path/jquery-old.js', function() {
jQ(function() {
jQ(this).datepicker();
})
});
上面的代碼當前放置在注入DOM中輸入的函數的成功回調中。
這是我的JS的最高級版本,我試過沒有getScript,我試圖把它放在jstree對象創建之前/之後。我不知道我缺少什麼或使datepicker()工作的正確方法。
非常感謝您的幫助!
附加信息
我正在使用使用Django Framework的Web應用程序。 $(「#datepicker」)。datepicker()在我不使用jstree的視圖中工作正常,所以根據我讀過的內容,我非常確定這是兩個插件之間的衝突,很可能與jQuery版本有關。
爲什麼你需要2個版本的jquery? – bassxzero
getScript函數不能確保庫綁定到正確的版本。它只會在dom中添加並加載腳本。 – Jerodev
實際上我並不需要它,但是我在jquery-ui/external/jquery.js中發現了jQuery 1.12.4文件,所以我認爲它是插件使用的版本。我也嘗試刪除它或用我的jquery 3.x文件替換它,但它沒有解決這個問題。 –