Uncaught ReferenceError: $ n'est pas défini?

pourquoi ce code lance un

Uncaught ReferenceError: $ n'est pas défini

quand c'était OK avant?

$(document).ready(function() {
    $('#tabs > ul').tabs({ fx: { opacity: 'toggle' } });
    $('#featuredvid > ul').tabs();
});

résultats dans les onglets ne se ferment plus.

jQuery est référencé dans l'en-tête:

<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/sprinkle.js"></script>
<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/jquery-1.2.6.min.js"></script>
<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/jquery-ui-personalized-1.5.2.packed.js"></script>
513
demandé sur Soviut 2010-01-16 02:04:36

30 réponses

vous devez d'abord mettre les références aux scripts jquery.

<script language="JavaScript" type="text/javascript" src="/js/jquery-1.2.6.min.js"></script>
<script language="JavaScript" type="text/javascript" src="/js/jquery-ui-personalized-1.5.2.packed.js"></script>
<script language="JavaScript" type="text/javascript" src="/js/sprinkle.js"></script>
596
répondu Jeremy 2010-01-15 23:08:06

vous appelez la fonction ready avant que le JavaScript jQuery ne soit inclus. Référence jQuery d'abord.

172
répondu Open Source 2018-02-27 10:07:52

C'est ce qui l'a résolu pour moi. À l'origine, je suis allé sur Google et j'ai copié et collé leur snippet suggéré pour jQuery sur leur page CDN:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

L'extrait ne comprend pas le HTTP: ou HTTPS: dans l'attribut src mais mon navigateur, FireFox, en avait besoin alors je l'ai changé en:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

puis ça a marché.

92
répondu Marlin Mixon 2013-05-14 14:58:52

si votre script personnalisé est chargé avant que le plugin jQuery ne soit chargé sur le navigateur alors ce type de problème peut se produire. Donc, gardez toujours votre propre code JavaScript ou jQuery après avoir appelé le plugin jQuery donc la solution pour cela est:

ajoutez D'abord le lien vers le fichier jquery hébergé sur GoogleApis ou un fichier jquery local que vous téléchargez à partir de http://jquery.com/download / et hôte sur votre serveur:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

ou tout plugin pour jQuery. Puis mettez votre lien de fichier de script personnalisé ou code:

<script src="js/custom.js" type="text/javascript"></script>
41
répondu Jnanaranjan 2014-09-03 10:43:45

dans mon cas, je mettais mon fichier .js avant le lien du script jQuery, mettant le fichier .js après que le lien du script jQuery a résolu mon problème.

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="exponential.js"></script>
37
répondu shivam 2015-06-21 08:26:14

OK, mon problème était différent - il était sécurité des documents modèle dans Chrome .

en regardant les réponses ici, il était évident que je ne chargeais pas mes fichiers jquery avant d'appeler le $(document).ready() etc. fonction. Cependant, ils étaient tous dans la bonne position.

dans mon cas, c'était parce que j'accédais au contenu via une connexion HTTPS sécurisée, alors que la page était essayer de télécharger les données hébergées CDN à partir de google, etc. La solution était de les stocker localement et de les inclure ensuite directement plutôt que de le CDN à chaque fois.

Edit : l'autre façon de faire ceci est de créer un lien vers toutes les choses hébergées par CDN comme https:// plutôt que http://-alors le model ne se plaint pas.

24
répondu Sudipta Chatterjee 2013-03-10 00:52:02

si c'est dans wordpress, pourrait être nécessaire de changer ""

$(document).ready(function() {

à

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

ou ajouter

var $ = jQuery;

avant

$(document).ready(function() {
18
répondu xoxn-- 1'w3k4n 2015-07-09 08:27:46

ajoutez la bibliothèque avant de lancer le script.Vous pouvez ajouter n'importe lequel de ces CDN pour le démarrer.

Google:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

Microsoft

<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js"></script>

Jquery

si vous voulez une autre version jQuery cdn, cochez cette case lien .

après ceci:

<script type="text/javascript">
$(function(){
    //your stuff
});
or
$(document).ready(function(){
    //your stuff
});    
</script>

Wordpress:

<script type="text/javascript">
var $ = jQuery;
jQuery(document).ready(function($){
     //your stuff
});
</script>
18
répondu lalithkumar 2017-07-20 09:38:14

j'ai eu exactement le même problème et aucune de ces solutions ci-dessus aidé. cependant, je viens de liée au .les fichiers css après la .fichiers js et le problème miraculeusement disparu. espérons que cette aide.

13
répondu crowicked 2011-01-19 12:55:37

dans mon cas, j'ai eu cette erreur de référence, car l'ordre des scripts était erroné. Résolu cela en changeant l'ordre:

<script src="js/index.js"></script>
<script src="js/jquery-1.10.2.js"></script>

à

<script src="js/jquery-1.10.2.js"></script>
<script src="js/index.js"></script>
12
répondu Yannis Dran 2014-02-01 13:57:15

je suis probablement la seule personne qui a eu mon genre de problème mais je vais quand même le poser. Je voulais essayer de faire mon script asynchrone juste pour le plaisir. Puis je l'ai oublié et quand je suis allé vivre la [coutume].le fichier js n'est chargé que 50% du temps avant le jQuery.js.

donc j'ai changé

<script async src="js/script.js"></script>

à

<script src="js/script.js"></script>

:)

12
répondu Sindri Þór 2016-05-02 12:12:49

si vous faites cela dans .Net et que le fichier de script est correctement référencé et que votre jQuery semble correct, assurez-vous que vos utilisateurs ont accès au fichier de script. Le projet sur lequel je travaillais (un collègue) avait leur toile.config refuse l'accès aux utilisateurs anonymes. La page sur laquelle je travaillais était accessible aux utilisateurs anonymes, donc ils n'avaient pas accès au fichier script. J'ai laissé tomber ce qui suit sur le web.config et tout était bien dans le monde:

  <location path="Scripts">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
6
répondu peroija 2013-06-26 18:10:03

le fichier source jquery-1.2.6.min.js n'est pas appelé la commande jQuery $() est exécuté plus tôt que <..src='jquery-1.2.6.min.js'> .

veuillez d'abord exécuter <.. src="/js/jquery-1.2.6.min.js.."> et assurez-vous que le chemin src est correct, puis exécutez la commande jquery

$(document).ready(function() 
5
répondu charles hsu 2012-09-27 12:52:45

ça m'est déjà arrivé.

la raison est que je connecte android à un webview avec un JS. Et j'ai envoyé un paramètre sans guillemets.

js.sayHello(hello);

et quand je l'ai changé en

js.sayHello('hello');

ça a marché.

5
répondu Reinherd 2013-09-13 08:16:20

votre fichier JavaScript est manquant donc cette erreur s'est produite. Il suffit d'ajouter le fichier JavaScript à l'intérieur de la balise <head> . Voir l'exemple:

<script src="js/sample.js" type="text/javascript"></script>
<link href="css/sample.css" rel="stylesheet" type="text/css" />

ou ajouter le code suivant dans l'étiquette:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
4
répondu Gaurav Gupta 2013-05-28 06:01:20

dans mon cas c'était une faute de frappe, j'ai oublié un antislash et j'ai mal fait référence à la source.

avant src="/scripts/jquery.js"

après src="scripts/jquery.js"

4
répondu Dennis 2014-09-04 15:42:13

l'erreur se produira également dans les deux scénarios suivants.

  1. l'élément scripts @section est absent du fichier HTML
  2. erreur dans l'accès aux éléments DOM. Par exemple, l'accès à L'élément DOM est mentionné comme $("js-toggle") au lieu de $(".js-toggle"). En fait, la période est manquante

donc 3 choses à suivre-vérifiez que les scripts requis sont ajoutés, Vérifiez s'ils sont ajoutés dans le script requis des erreurs d'ordre et de syntaxe dans votre Script Java.

4
répondu Sankar Krishnamoorthy 2016-07-13 06:53:11

Doh! J'ai mélangé des citations dans mes étiquettes qui ont causé la référence à jquery de casser. Faire une inspection dans Chrome m'a permis de voir que le fichier n'était pas correctement lié.

3
répondu justreed 2012-06-25 17:36:45

Dans mon cas, j'ai oublié d'inclure ceci :

 <script src ="jquery-2.1.1.js"></script>

plus tôt j'incluais juste jQuery-mobile qui causait cette erreur.

3
répondu Anand 2014-06-21 14:12:11

Ok j'admets que celui-ci était une chose vraiment stupide qui m'est arrivé une fois. J'ai modifié la balise de script pour pointer vers le bon contenu et modifié le script pour être le droit dans l'éditeur ... mais complètement oublié de sauver le changement ;( vous pourriez rire maintenant, mais quand vous êtes fatigué toute sorte de problèmes étranges peuvent se produire. I

3
répondu Hexodus 2017-04-30 18:56:10

j'ai eu un problème similaire et c'était parce que je manquais une fermeture > sur un lien de feuille de style.

2
répondu jason 2014-03-10 17:13:35
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="local_xxx.js"></script>

j'ai un problème similaire, et vous savez quoi, c'est à cause de réseau est déconnecté quand je teste sur android device webview et je ne le réalise pas, et le JS local aucun problème à charger parce qu'il n'a pas besoin de réseau. C'est ridicule, mais je perds une heure à le découvrir.

2
répondu 林果皞 2017-05-05 08:51:08

assez étrange, mon problème venait de PHP.

un appel de L'API REST échouait, et il cassait le chargement des bibliothèques par la suite. Depuis l'échec était de L'appel de repos, il ne me donnait pas une erreur de compilation de php.

garder cette option aussi, si le chargement de jquery semble correct.

1
répondu Aris 2014-03-11 12:30:53

j'ai eu ce problème, quand je parcourais internet à travers mon hotspot mobile. il compressait également les images et a ajouté le script suivant au bas de la balise de corps

<script language="javascript"><!--
bmi_SafeAddOnload(bmi_load,"bmi_orig_img");//-->
</script>

quand je me suis connecté à la bonne connexion wifi, tout semble fonctionner trouver pour moi. Espérons que cela aide quelqu'un.

1
répondu bubb 2014-05-28 15:18:06

j'ai eu un problème similaire. Mon serveur de test fonctionnait très bien avec"http". Cependant, il a échoué dans la production qui avait SSL.

donc en production, j'ai ajouté" HTPPS "au lieu de" HTTP "et en test, j'ai gardé comme il est"HTTP".

Test:

wp_register_script ('jquery', ' http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js ', array (), null, false);

wp_register_script ("sur mesure script', plugins_url( '/js/custom.js', FICHIER ), array( 'jquery' ) );

de la Production:

wp_register_script ('jquery', ' https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js ', array (), null, false);

wp_register_script ("sur mesure script', plugins_url( '/js/custom.js', FICHIER ), array( 'jquery' ) );

espérons que cela aidera quelqu'un qui travaille sur wordpress.

1
répondu user3671115 2015-04-10 01:56:39

cela peut également se produire, s'il ya un problème de réseau. Ce qui signifie que même si les "scripts jquery" sont en place, et sont inclus avant l'utilisation, puisque les scripts jquery ne sont pas accessibles, au moment du chargement de la page, donc les définitions au "$" sont traitées comme des "références non définies".

à des fins de test/débogage:: vous pouvez essayer d'accéder à l'url "jQuery-script" sur le navigateur. Si elle est accessible, votre page doit charger correctement, sinon il affichera ladite erreur (ou d'autres erreurs de script pertinentes). Exemple - http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js doit être accessible, sur le navigateur (ou les positions du contexte du navigateur).

j'ai eu un problème similaire, dans lequel j'ai été en mesure de charger la page html (en utilisant des scripts) dans mon Windows-host-browser, mais n'a pas été en mesure de charger dans VM-ubuntu. Résoudre le problème du réseau, j'ai résolu le problème.

1
répondu parasrish 2016-04-05 14:03:07
var $ = jQuery;
jQuery(document).ready(function($){
1
répondu Jayanit Satani 2017-04-14 11:31:15

problème de racine est un ReferenceError . MDN indique qu'un bloc try / catch est l'outil approprié pour le travail. Dans mon cas, je recevais une erreur de référence non récupérée pour un sdk de paiement/bibliothèque. Le dessous fonctionne pour moi.

try {
  var stripe = Stripe('pk_test_---------');
} catch (e) {
    stripe = null;
}

if(stripe){
  //we are good to go now
}

évidemment, le correctif est de charger n'importe quel SDK/bibliothèque, par exemple jQuery, avant d'appeler ses méthodes, mais le try / catch empêche votre JavaScript partagé d'Effacer les erreurs au cas où vous exécutez ce script partagé sur une page qui ne charge pas la bibliothèque que vous utilisez sur un sous-ensemble de pages.

0
répondu Ron Royston 2018-06-21 00:45:53

voici le pire des cas:

tout semblait parfait. Après avoir passé quelques heures, j'ai réalisé que le fichier jquery qui est ajouté à la bonne position était en fait un fichier avec du contenu vide!

-1
répondu Binod 2014-06-23 12:47:26

mordu par ceci encore une fois, des liens de source de bibliothèque manquants. Google A Accueilli Les Bibliothèques lien Semblable

-1
répondu Abhijeet 2017-05-23 11:47:19