2017-09-27 1 views
1

Wir haben kürzlich von Typo3 6.2 LTS auf 7.6 LTS migriert. Jetzt haben wir ein Problem mit unserer js.Typo3 7.6 JS funktioniert teilweise nicht nach der Migration

I umfassen tun, um die Js librarys wie folgt:

  • jQuery 1,11
  • tablesorter (Version unbekannt)
  • global.js (wo ich $ telefoniere (Selektor) .tablesorter())

Jetzt bekomme ich einen Fehler, den ich auf Typo3 6.2 LTS nicht bekommen habe. Der Fehler sagt "$ (Selektor) .tablesorter ist keine Funktion".

Ich überprüfte meinen DOM Baum/benutzte js Dateien und ich konnte sehen, dass Typo3 7.6 jQuery 2.1.4 einschließt. Glauben Sie, dass dies der Grund für diese Funktion sein könnte?

Hoffentlich konnte jemand dieses Problem bereits lösen. Danke vielmals!

Greetz, Paddaels

+0

Tritt dieser Fehler im Frontend oder im TYPO3-Backend auf? –

Antwort

3

ich dieses Problem gesehen habe manymanytimes (nur die drei Verknüpfung konnte ich schnell finden).

Im Wesentlichen erhält die erste Version von jQuery alle Plugins, die daran gebunden sind ($.fn). Wenn also die zweite Kopie von jQuery geladen wird, führt die Document Ready-Funktion (weiter unten im DOM) die zweite Version aus keine Plugins enthalten.

Fix: Entfernen Sie die zweite Kopie von jQuery, oder verwenden Sie jQuery.noConflict(). Es wird genauer in this answer erklärt.

+0

Nun, ich habe bereits meinen Code, wie sie für ihre Lösung haben. Ich habe $ .noConflict() versucht, aber das hat nicht funktioniert. Ich habe meinen Code insode window.onload = function() {...} gepackt, aber das hat nicht wirklich geholfen. Ich habe jquery und tablesorter aktualisiert, aber das hat nicht funktioniert. Ich verstehe es nicht ... warum sagt es mir weiter, dass - obwohl ich $ (..). Tablesoter() innerhalb von $ (function() {}) anrufe, dass $ (...). Tablesorter ist keine Funktion. Ich werde verrückt :( – PaddaelsM

+0

Bitte teilen Sie den Code, den Sie verwenden, das würde uns helfen, das Problem zu finden, anstatt zu erraten. – Mottie

1

Das Problem war requirJS.

Mit der Migration von 6.2 LTS auf 7.6 LTS verwendet Typo3 jetzt requireJS. jQuery, tablesorter (und einige andere Librarys) registrieren sich selbst als Modul.

Wir mussten unseren Code nach Typo3 7.6 docs umschreiben.

Verwandte Themen