2017-09-27 4 views
1

Nous avons récemment migré de Typo3 6.2 LTS à 7.6 LTS. Maintenant, nous avons un problème avec notre js.Typo3 7.6 JS partiellement ne fonctionne pas après la migration

j'inclure les .js librarys comme suit:

  • jQuery 1,11
  • tablesorter (version inconnue)
  • global.js (où je fais appel $ (sélecteur) .tablesorter())

Maintenant, je reçois une erreur que je n'ai pas eu sur Typo3 6.2 LTS. L'erreur indique "$ (selector) .tablesorter n'est pas une fonction".

J'ai vérifié mes fichiers DOM tree/used js et j'ai pu voir que Typo3 7.6 inclut jQuery 2.1.4. Pensez-vous que cela pourrait être la raison de cette fonctionnalité?

Espérons que quelqu'un pourrait déjà résoudre ce problème. Merci beaucoup!

Greetz, Paddaels

+0

Cette erreur se produit-elle dans le frontal ou dans le backend TYPO3? –

Répondre

3

Je l'ai vu cette question manymanytimes (seulement reliant le 3 je pouvais trouver rapidement). Essentiellement, la première version de jQuery obtient tous les plugins liés ($.fn), donc quand la deuxième copie de jQuery est chargée, la fonction document ready (située plus bas dans le DOM) exécute la seconde version qui fait ne pas inclure de plugins.

Correction: supprimez la deuxième copie de jQuery ou utilisez jQuery.noConflict(). Il est expliqué plus en détail dans this answer.

+0

Eh bien, j'ai déjà mon code comme ils le font pour leur solution. J'ai essayé $ .noConflict() mais cela n'a pas fonctionné. J'ai emballé mon code insode window.onload = function() {...} mais cela n'a pas vraiment aidé. J'ai mis à jour jquery et tablesorter mais cela n'a pas fonctionné. Je ne comprends pas ... pourquoi est-ce que ça continue à me dire que - même si j'appelle $ (..). Tablesoter() dans $ (function() {}) que $ (...). pas une fonction. Je vais devenir fou :( – PaddaelsM

+0

S'il vous plaît partager le code que vous utilisez, cela nous aiderait à trouver le problème au lieu de deviner. – Mottie

1

Le problème était requireJS. Avec la migration de 6,2 LTS à 7,6 LTS, Typo3 utilise maintenant requireJS. jQuery, tablesorter (et quelques autres bibliothèques) s'enregistrent comme module.

Nous avons dû réécrire notre code selon les documents Typo3 7.6.