web-dev-qa-db-fra.com

'JQuery' n'est pas défini

Je travaille sur un projet ASP.net créé avec les paramètres du système de fichiers local. J'utilise MVC et Jquery. Jquery fonctionne correctement lorsque je lance l’application en mode débogage, c’est-à-dire dans le serveur de développement ASP.net. J'essaie d'héberger l'application dans IIS 7. En mode hébergé, il ne reconnaît pas Jquery et génère l'erreur de script «Jquery n'est pas défini». Les emplacements des fichiers de script sont inchangés dans les deux modes. Quelqu'un peut-il avoir une idée de ce qui peut être la raison et comment résoudre ce problème.

Mon code ressemble à ceci;

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script src="../../Scripts/MicrosoftAjax.debug.js" type="text/javascript"></script>

<script src="../../Scripts/MicrosoftMvcAjax.debug.js" type="text/javascript"></script>

<script src="../../Scripts/jquery-1.2.6.js" type="text/javascript"></script>

<!-- YUI Styles -->
<link href="../../Content/reset.css" rel="stylesheet" type="text/css" />
<link href="../../Content/fonts.css" rel="stylesheet" type="text/css" />
<link href="../../Content/grids.css" rel="stylesheet" type="text/css" />
<!-- /YUI Styles -->
<link href="../../Content/knowledgebase.css" rel="stylesheet" type="text/css" />

<script type="text/javascript">
    //this hides the javascript warning if javascript is enabled
    (function($) {
        $(document).ready(function() {
            $('#jswarning').hide();
        });
    })(jQuery);
</script>

<asp:ContentPlaceHolder ID="ScriptContent" runat="server" />

....

21
Raja

Essayez d’utiliser l’onglet «Net» de Firebug pour voir si le fichier est chargé.

Vous pouvez également configurer Firebug pour qu'il échoue pour toutes les erreurs et voir à quel moment l'erreur se produit par rapport au moment où jQuery est chargé.

20
Andrey Shchekin

0 Je ne sais pas si vous avez trouvé la solution à votre problème ou non. Je faisais face au même problème et je suis devenu fou pour comprendre pourquoi je reçois une erreur "jQuery is undefined" sur les plugins que j'utilise. J'ai essayé toutes les solutions que je trouve sur Internet mais pas de chance du tout.

Mais tout à coup, quelque chose m'éclaire dans l'esprit qui pourrait être que les fichiers de script devraient être en ordre. J'ai donc déplacé la référence JQuery en première position et tout commence à fonctionner comme un charme.

Rappelez-vous les gars, si vous utilisez des plugins avec jQuery, assurez-vous que vous utilisez l'ordre suivant pour définir les références à ces domaines.

  1. référence à la bibliothèque jQuery
  2. référence aux autres bibliothèques de plug-ins (dépendantes) suivantes, etc.

par exemple.: 

  1. "script src =" js/jquery-1.3.2.min.js "type =" text/javascript "... 
  2. "script src =" js/jqDnR.min.js "type =" text/javascript "... 
  3. "script src =" js/jquery.jqpopup.min.js "type =" text/javascript "... 
  4. "script src =" js/jquery.bgiframe.min.js "type =" text/javascript "...

Assurez-vous toujours de mettre la référence jquery en premier, puis les bibliothèques suivantes.

J'espère que cela résoudra votre problème, en particulier lorsque vous utilisez MasterPages. Il est très étrange que cela fonctionne quel que soit l'ordre utilisé lorsque vous n'utilisez pas MasterPages, mais lorsque vous l'utilisez, il nécessite en quelque sorte l'ordre approprié.

Bonne chance et bon codage,

Vincent D'Souza

41
Vincent D'Souza

Vous pouvez également essayer de laisser Google Host jQuery à votre place:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>

Cela évitera de s'inquiéter du chemin relatif du script, évitera de charger votre serveur et sera plus rapide pour les utilisateurs (qui l'ont probablement déjà quelque part dans le cache de leur navigateur).

4
Kip

Après l’utilisation de FIrebug, j’ai découvert que les fichiers n’étaient pas trouvés car le chemin relatif des fichiers ne fonctionnait pas. Pour résoudre le problème, nous devons utiliser la méthode Url.Content pour redéfinir le chemin. Par exemple:

<script src="<%= Url.Content("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>
4
Raja

J'ai reçu le message en raison d'un décalage entre la version de JavaScript de la page et celle du projet.

Sur la page: <script src = "@ Url.Content (" ~/Scripts / jquery-1.4.4 . Min.js ")" type = "text/javascript"> </ script>

Version actuelle dans le projet: jquery-1.4.1 . Min.js

Diagnostiqué à l'aide de Firebug et paramétré, il affiche toutes les erreurs, comme décrit dans la réponse acceptée.

4
Stephen Hosking

Jquery?!
Vous voulez dire jQuery?

Javascript est sensible à la casse. Jquery n'est pas la même chose que jQuery.

3
Jonathan Lonowski

Pour élaborer sur la réponse "text/javascript", "application/javascript" fonctionnera sous Firefox et charger jQuery parfaitement. Cependant, le fichier ne sera pas chargé dans IE. Utilisez "text/javascript": 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" ></script>
3
Dan Heberden

Une autre raison de cette erreur que j’ai découverte se produit si vous chargez jQuery à partir d’un cdn et d’un script local à partir de votre serveur. Ils se chargent indépendamment, donc si le script local finissant avant jQuery, il sera également exécuté avant, ce qui nous donne la belle erreur. Ceci est particulièrement un problème si jQuery ne se trouve pas dans le navigateur, vous pouvez donc voir cette erreur se produire la première fois que les scripts sont chargés et disparaissent ensuite.

2
Georg Begerow

Raja a raison, URL.Content fonctionne.

<script src="<%= Url.Content("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>

De plus, pour ne pas être surpris au moment de migrer votre application vers un serveur IIS, n'utilisez pas de serveur de développement Web, mais utilisez IIS lors du développement.

Vous pouvez utiliser IIS directement à partir de visual studio en modifiant les propriétés Web:

  • Allez sur l'onglet 'Web'
  • Cochez 'Utiliser le serveur Web local IIS'
  • Cliquez sur 'Créer un répertoire virtuel'
  • Accédez au gestionnaire IIS pour désactiver l'accès anonyme dans le répertoire virtuel créé, le cas échéant.
2
Michel van Engelen

Les erreurs courantes sont que d’autres scripts Jquery sont inclus d’abord (Jquery.validation.js) avant le fichier Jquery.js.

1
Roy Astro

Pour moi, cette erreur se produit généralement lorsqu'il y a une vraie erreur Javascript dans certains de mes codes. Cela empêche le fichier jQuery.js d'être entièrement analysé. Regardez dans la console d'erreur de Firebug, Safari ou un autre navigateur convivial pour le débogage.

1
Aaron Longwell

Si tout échoue, assurez-vous que le fichier dispose des autorisations appropriées. Cela m'est juste arrivé! 

Vous pouvez soit cliquer avec le bouton droit sur le fichier de votre répertoire et définir l’autorisation correspondante, soit créer un autre fichier .js dans Visual Studio, puis copier et coller le contenu. Travaillé comme un charme. :)

0
Ozzie Perez

Le chemin est faux. Vérifiez le.

0
Elzo Valugi

Correct! Cela fait des jours que je cherche la solution. Lorsque vous utilisez un nouveau projet MVC dans VS, il a ses propres références à JQuery dans la page Layout.cshtml. Si vous essayez de référencer JQuery dans une page, il sera écrasé par la référence dans la page Layout.cshtml. Commentez le code dans la page principale (Layout.cshtml) et il utilisera vos références de page.

0
Michael Chambers

Cela se produit généralement lorsque le code HTML ou JavaScript est mal formé.

0
EndangeredMassa

S'il n'y a pas d'erreur dans votre javascript (par exemple: crochets manquants), cela signifie que le fichier jQuery n'est pas inclus ou que vous essayez d'exécuter du code reposant sur jQuery avant le chargement de ce fichier.

0
nickf

J'ai résolu ce problème en supprimant la mise en commentaire de la référence jQuery dans mon _Layout.cshtml. Après avoir relancé le site, tout commence à peine à fonctionner. 

0
gyurisc

Pour ajouter mon problème/solution à cette longue liste ...

J'utilisais Windows 2003 pour tester le site dans IE7. Le site s'est bien passé, mais jQuery n'a pas fonctionné du tout. Alors je suis allé directement au http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js et a constaté que ajax.googleapis.com n'était pas sur la liste des sites sûrs. Après avoir ajouté * .googleapis.com, tout a bien fonctionné. Silly supervision, mais peut-être que cela aidera quelqu'un d'autre dans une situation similaire.

0
DavGarcia

essayer

<script src="<%= ResolveUrl("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>
0
BOBO