web-dev-qa-db-fra.com

Problèmes jQuery après la mise à niveau 3.4

J'ai des problèmes avec jQuery après la mise à jour 3.4.5 depuis la 3.2.2.

$ N'est pas défini.

J'ai eu quelques problèmes à résoudre et j'ai trouvé ceci: https://stackoverflow.com/questions/17687619/is-there-a-way-turn-off-jquery-noconflict-mode -in-wordpress

mais si je cours:

$ = jQuery.noConflict(true); alors le nouveau problème est que jQuery n'est pas défini.

Ce n'est pas un problème dans mon site 3.2.2, où $ et jQuery sont définis.

J'ai essayé des choses telles que la définition de jQuery = $ après l'instruction noConflict et le clonage de jQuery dans $ mais aucun de ceux-ci n'a fonctionné.

J'utilise jQuery 1.8.3 au lieu de jQuery inclus avec Joomla. Je me suis également assuré que mootools n'était pas inclus.

Existe-t-il un moyen d'obtenir que $ et jQuery fonctionnent en même temps?

2
ContextSwitch

Premièrement, il n'y a aucune raison pour que vous utilisiez jQuery 1.8.3 car il s'agit d'une version ancienne et non prise en charge. Veuillez vous en tenir à ce que Joomla fournit (1.11.3).

Le modèle et toutes les extensions que vous utilisez doivent procéder comme suit pour importer jQuery:

JHtml::_('jquery.framework');

Cela garantit qu’il n’est importé qu’une fois lors de la compilation de head. Cela signifie que le mode NoConflict est activé. Par conséquent, les éléments suivants sont ajoutés ci-dessous.

jQuery.noConflict();

Tous les modèles/extensions doivent alors toujours écrire leur script JS personnalisé comme suit:

jQuery(document).ready(function(){  
    var element = jQuery('#element');
});

ou:

jQuery(document).ready(function($){  
    var element = $('#element');
});

Dans le deuxième exemple, vous pouvez voir que j'ai réussi $ à travers un alias de jQuery.

Donc dans l’ensemble, votre développeur de modèle ou d’extension n’a pas suivi ce processus. Vous pouvez donc trouver le coupable et le réparer, ou installer le plugin jQuery Easy .

J'espère que cela t'aides

1
Lodder