En jQuery, l’appel d’une fonction se fait en général de la manière suivante :
1 2 3 4 5 |
$(document).ready(function() { $("a").click(function() { alert("toto"); }); }); |
L’objet $
est utilisé par jQuery en tant que récupérateur de fonctions, et le script sait quelle librairie appeler. Problème : si vous utilisez d’autres librairies qui utilisent aussi le dollar comme objet par défaut (Prototype, Scriptaculous dans Magento par exemple…), vous obtiendrez potentiellement des conflits et un message d’erreur de type $ is not a function !
Solution 1 :
Utiliser la fonction jQuery.noConflict();
et créer une fonction anonyme. Source : jquery – is not a function error.
1 2 3 4 5 6 7 8 9 |
jQuery.noConflict(); (function($){ "use strict"; $(document).ready(function() { $("a").click(function() { alert("toto"); }); }); })(jQuery); |
Solution 2 :
Remplacer tous les $
par un alias jQuery
afin de réassigner toutes les variables de l’objet $
à ce dernier. Source : « $ is not a function » dans JQuery – La solution.
1 2 3 4 5 |
jQuery(document).ready(function() { jQuery("a").click(function() { alert("toto"); }); }); |