Anwendungsfall
Ich habe einen Konflikt zwischen jstree und jquery-ui Datepicker.Arbeiten mit verschiedenen Versionen von jQuery
Ich versuche, jquery-UI-Datepicker auf eine Eingabe in DOM nach AJAX-Anfrage injiziert.
Ich verwende jsTree 3.3, die jQuery 3.1.1 und jQueryUI v1.12.1 verwendet, die jQuery 1.12.4 verwendet. Ausgabe
Wenn ich versuche, $('#datepicker').datepicker()
zu nennen, wirft er eine Typeerror
(...). Picker ist keine Funktion
Was ich versucht habe bisher
Nach vielen anderen Themen, einschließlich der beiden folgenden:
Konflikt zwischen Datepicker und jstree oder multi pul
picker setzen() auf dynamisch erstellte Elemente - JQuery/jQueryUI
sieht Ihr Code wie folgt:
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();
})
});
Der obige Code wird derzeit im Erfolgsrückruf der Funktion platziert, die die Eingabe in das DOM einfügt.
Dies ist die am weitesten fortgeschrittene Version von meinem JS, ich habe versucht, ohne getScript, ich habe versucht, es vor/nach jstree Objekte erstellen. Ich habe keine Ahnung, was ich vermisse oder die richtige Art, das Datepicker() zu arbeiten.
Vielen Dank im Voraus für jede Hilfe!
Zusatzinfo
ich auf Web app gerade arbeite Django Framework. $ ("# datepicker"). datepicker() funktioniert gut in Sichten, in denen ich jstree nicht benutze, also bin ich mir ziemlich sicher, dass es zwischen den beiden Plugins liegt und sehr wahrscheinlich mit jQuery-Versionen zusammenhängt.
Warum brauchen Sie 2 Versionen von jquery? – bassxzero
Die Funktion getScript stellt nicht sicher, dass die Bibliothek an die richtige Version gebunden ist. Es fügt nur hinzu und lädt das Skript in dom. – Jerodev
Ich brauche es eigentlich nicht, aber ich fand jQuery 1.12.4 Datei in jquery-ui/external/jquery.js, also vermute ich, es ist die Version, die das Plugin verwendet. Ich habe auch versucht, es zu entfernen oder es durch meine jquery 3.x Datei zu ersetzen, aber es behebt das Problem nicht. –