用例
我在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文件替换它,但它没有解决这个问题。 –