用例
我在jstree和之间发生了冲突。
我试图在AJAX请求后在DOM中注入的输入中使用jquery datepicker。
我使用的是jsTree 3.3,它使用jQuery 3.1.1,jQueryUI v1.12.1使用jQuery 1.12.4。问题
当我试图调用$('#datepicker').datepicker()时,它会抛出一个TypeError
(.).datepicker不是一个函数
到目前为止我尝试过的
根据许多其他议题,包括以下两个方面:
数据采集器与jstree或multipul之间的冲突
将datepicker()放在动态创建的元素上- 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框架开发Web应用程序。$("#datepicker").datepicker()在我不使用jstree的视图中工作得很好,所以根据我所读到的内容,我很确定这是两个插件之间的混和,很可能与jQuery版本有关。
发布于 2017-10-06 13:02:57
您可以说"jQueryUI v1.12.1,它使用jQuery 1.12.4“。你是在什么基础上决定这个要求的?
http://jqueryui.com/download/简单地列出了UI 1.12.1的下载,如下所示:
1.12.1 (对于jQuery1.7+来说是稳定的)需要jQuery1.7或更高版本。
为了证实这一点,http://api.jqueryui.com/非常清楚地指出
jQuery UI 1.12支持jQuery 1.7及更高版本。
除了这一最低要求之外,没有提到任何具体的版本。你没有理由不能用3.x来处理它。正如您已经发现的,在您的页面中拥有多个版本的jQuery (甚至是同一版本的多个副本)是一个麻烦的秘诀。
要解决问题,只需从项目中完全删除jQuery1.12.4即可。
https://stackoverflow.com/questions/46606032
复制相似问题