jQuery Uncaught TypeError: La propriété ‘$’ de l’object n’est pas une fonction

Tout, j’ai téléchargé une application de formulaire JS / CSS préchargé et j’essaie de l’utiliser dans WordPress. J’ai le code suivant:

$(document).ready(function () { /*----------------------------------------------------------------------*/ /* Parse the data from an data-atsortingbute of DOM Elements /*----------------------------------------------------------------------*/ $.parseData = function (data, returnArray) { if (/^\[(.*)\]$/.test(data)) { //array data = data.substr(1, data.length - 2).split(','); } if (returnArray && !$.isArray(data) && data != null) { data = Array(data); } return data; }; /*----------------------------------------------------------------------*/ /* Image Preloader /* http://engineeredweb.com/blog/09/12/preloading-images-jquery-and-javascript /*----------------------------------------------------------------------*/ // Arguments are image paths relative to the current page. $.preload = function() { var cache = [], args_len = arguments.length; for (var i = args_len; i--;) { var cacheImage = document.createElement('img'); cacheImage.src = arguments[i]; cache.push(cacheImage); } }; /*----------------------------------------------------------------------*/ /* fadeInSlide by revaxarts.com /* Fades out a box and slide it up before it will get removed /*----------------------------------------------------------------------*/ $.fn.fadeInSlide = function (speed, callback) { if ($.isFunction(speed)) callback = speed; if (!speed) speed = 200; if (!callback) callback = function () {}; this.each(function () { var $this = $(this); $this.fadeTo(speed / 2, 1).slideDown(speed / 2, function () { callback(); }); }); return this; }; /*----------------------------------------------------------------------*/ /* fadeOutSlide by revaxarts.com /* Fades out a box and slide it up before it will get removed /*----------------------------------------------------------------------*/ $.fn.fadeOutSlide = function (speed, callback) { if ($.isFunction(speed)) callback = speed; if (!speed) speed = 200; if (!callback) callback = function () {}; this.each(function () { var $this = $(this); $this.fadeTo(speed / 2, 0).slideUp(speed / 2, function () { $this.remove(); callback(); }); }); return this; }; /*----------------------------------------------------------------------*/ /* textFadeOut by revaxarts.com /* Fades out a box and slide it up before it will get removed /*----------------------------------------------------------------------*/ $.fn.textFadeOut = function (text, delay, callback) { if (!text) return false; if ($.isFunction(delay)) callback = delay; if (!delay) delay = 2000; if (!callback) callback = function () {}; this.each(function () { var $this = $(this); $this.stop().text(text).show().delay(delay).fadeOut(1000,function(){ $this.text('').show(); callback(); }) }); return this; }; /*----------------------------------------------------------------------*/ /* leadingZero by revaxarts.com /* adds a leding zero if necessary /*----------------------------------------------------------------------*/ $.leadingZero = function (value) { value = parseInt(value, 10); if(!isNaN(value)) { (value < 10) ? value = '0' + value : value; } return value; }; }); 

Je supposais que le WordPress no conflict était à l’origine d’un problème, j’ai donc mis à jour le tout dernier support pour ressembler à ceci:

 }, "jQuery"); 

Cependant, je reçois toujours la même erreur. Est-ce que quelqu’un sait ce qui encouragerait ce problème et comment le résoudre?

Merci d’avance!

Ceci est un problème de syntaxe, la bibliothèque jQuery incluse avec WordPress charge en mode “sans conflit”. Cela permet d’éviter les problèmes de compatibilité avec les autres bibliothèques javascript que WordPress peut charger. En mode “pas de conflit”, le raccourci $ n’est pas disponible et plus jQuery est utilisé, c.-à-d.

 jQuery(document).ready(function ($) { 

En incluant le $ entre parenthèses après l’appel de fonction, vous pouvez utiliser ce raccourci dans le bloc de code.

Pour plus de détails, voir WordPress Codex

Mon concept préféré sans conflit:

 jQuery(function($) { // ... }); 

L’appel de jQuery avec un pointeur de fonction est un raccourci pour $ (document) .ready (…)

Ou comme on dit en coffeescript:

 jQuery ($) -> # code here 

Dans WordPress, remplacez simplement

 $(function(){...}); 

avec

 jQuery(function(){...}); 

Vous pouvez envisager de remplacer le script WordPress jQuery par défaut par Google Library en ajoutant quelque chose comme le suivant dans le fichier functions.php de thème:

 function modify_jquery() { if (!is_admin()) { wp_deregister_script('jquery'); wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js', false, '1.10.2'); wp_enqueue_script('jquery'); } } add_action('init', 'modify_jquery'); 

Code pris ici: http://www.wpbeginner.com/wp-themes/replace-default-wordpress-jquery-script-with-google-library/

vous avez peut-être un code comme celui-ci avant la jquery:

 var $jq=jQuery.noConflict(); $jq('ul.menu').lavaLamp({ fx: "backout", speed: 700 }); 

et eux était conflit

vous pouvez changer $ en (jQuery)