Lorsque le script se charge, j'obtiens cette erreur:
TypeError: 'undefined' n'est pas une fonction (évaluation '$ (document)')
Je n'ai aucune idée de ce qui le cause ou de ce que cela signifie même.
Dans firebug, j'obtiens ceci:
$ n'est pas une fonction
Wordpress utilise jQuery en mode noConflict par défaut. Vous devez le référencer en utilisant jQuery
comme nom de variable, et non $
, par ex. utilisation
jQuery(document);
au lieu de
$(document);
Vous pouvez facilement envelopper cette fonction dans une fonction à exécution automatique de sorte que $
renvoie de nouveau à jQuery (et évite également de polluer l'espace de noms global), par exemple.
(function ($) {
$(document);
}(jQuery));
Utilisez jQuery noConflict
. Cela a fait des merveilles pour moi
var example=jQuery.noConflict();
example(function(){
example('div#rift_connect').click(function(){
example('span#resultado').text("Hello, dude!");
});
});
C’est-à-dire que si jQuery est inclus dans votre code HTML
<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
Utilisez ceci:
var $ =jQuery.noConflict();
J'ai eu ce problème uniquement sur Chrome.
J'ai essayé d'ajouter
var $ =jQuery.noConflict();
juste avant d'appeler
$(document).ready(function () {
Ça a marché.
Merci beaucoup
Essayez cet extrait:
jQuery(function($) {
// Your code.
})
Cela a fonctionné pour moi, peut-être que cela vous aidera aussi.
Vérifiez également l’inclusion de jQuery, suivie de certains composants/autres bibliothèques (comme jQuery UI), puis accidentellement de nouveau incluant jQuery - cela redéfinira jQuery et supprimera les aides de composants (comme .datepicker) de l’instance.
;(function($){
// your code
})(jQuery);
Placez votre code js dans la fermeture ci-dessus, cela devrait résoudre le problème.
Je voudrais utiliser ceci
(function ($) {
$(document);
}(jQuery));
J'ai également été confronté à de tels problèmes à de nombreuses reprises dans le développement de sites Web. En fait, ce n’est pas un conflit JS. Lorsque nous chargeons le site Web html sur le navigateur, nous ne sommes pas confrontés à une telle erreur, mais lorsque nous chargeons ce type de site Web via localhost, nous sommes confrontés à un tel problème. C'est à cause de localhost. Lorsque nous chargeons des scripts via l’hôte localhost, celui-ci est analysé et restitué. Mais quand nous n'avons pas utilisé localhost. Il suffit de numériser la sortie. Par exemple, lorsque nous écrivons du code php avec l'hôte local et que nous courons sans hôte, nous obtenons une erreur. Mais si le code est correct et est exécuté via Host, nous obtenons la sortie réelle. Lorsque nous utilisons l'élément inspect, nous obtenons le code de sortie au format HTMl, mais pas au format PHP, en raison de la restitution du code.
C'est une erreur de rendu. Donc, pour corriger ces erreurs de code jquery, l’une des solutions peut utiliser cette méthode.
jQuery(document).ready(function($){
/******** Body of Jquery Code*****/
});
Ce code ne fait qu'enregistrer '$' en tant que variable de la fonction en appliquant jquery. Sinon, le fichier .js est uniquement lu en javascript.
Vous pouvez passer $ in function ()
jQuery(document).ready(function($){
// jQuery code is in here
});
ou vous pouvez remplacer $(document);
avec ceci jQuery(document);
ou vous pouvez utiliser jQuery.noConflict()
var jq=jQuery.noConflict();
jq(document).ready(function(){
jq('selector').show();
});
Deux choses:
envelopper tout le script entre cela ...
<script>
$.noConflict();
jQuery( document ).ready(function( $ ) {
// Code that uses jQuery's $ can follow here.
});
</script>
De nombreuses bibliothèques JavaScript utilisent $ comme une fonction ou un nom de variable, tout comme jQuery. Dans le cas de jQuery, $ est juste un alias pour jQuery, donc toutes les fonctionnalités sont disponibles sans utiliser $. Si vous devez utiliser une autre bibliothèque JavaScript à côté de jQuery, restituez le contrôle de $ à l'autre bibliothèque avec un appel à $. NoConflict () . Les anciennes références de $ sont enregistrées lors de l’initialisation de jQuery; noConflict () les restaure simplement.
Vous pouvez utiliser à la fois jQuery et $ dans l'extrait ci-dessous. ça a fonctionné pour moi
jQuery( document ).ready(function( $ ) {
// jQuery(document)
// $(document)
});
J'ai rencontré ce problème également lors de l'inclusion de jQuery dans l'en-tête de ma page, ne réalisant pas que l'hôte l'incluait déjà automatiquement dans la page. Alors chargez votre page en direct et vérifiez la source pour voir si jQuery est lié.