104 votes

Uncaught TypeError: undefined n'est pas une fonction de chargement jquery-min.js

Je suis en train de construire une page web normale qui m'oblige à charger sur cinq fichiers CSS et dix fichiers Javascript.

  • Lors du chargement d'eux séparément dans le code HTML de la page, ma page charge très bien.
  • Maintenant, pour la production, j'ai concaténé tout le code Javascript dans un fichier unique, dans l'ordre requis, et tout le CSS dans un fichier. Mais quand j'essaie de lancer la page web avec la concaténation de fichiers qu'il renvoyait un message d'erreur disant:

    Uncaught TypeError: undefined is not a function

Sur la ligne où jquery.min.js est chargé dans la concaténation de fichier Javascript.

Que puis-je faire pour atténuer ce risque? Je veux concaténer tous les fichiers et rapetisser pour la production. S'il vous plaît aider.


EDIT: j'ai fusionné le Javascript et CSS dans l'ordre où ils ont été quand ils étaient chargés individuellement et fonctionnent très bien.

178voto

Dustin Points 1196

En supposant que ce problème n'a toujours pas être résolu, un grand nombre de fichiers individuels ne pas mettre fin à leur code avec un point-virgule. La plupart des scripts jQuery fin avec (jQuery) et vous avez besoin de la (jQuery);.

En tant que fichiers distincts le script se charge très bien, mais comme un individu fichier dont vous avez besoin, les points-virgules.

28voto

Billa Ustad Points 452

Vous pourriez avoir à re chèque à l'ordre dans lequel vous fusionnez les fichiers, il doit être quelque chose comme.

  1. jquery.min.js
  2. jquery-ui.js
  3. toute tierce partie plugins de chargement
  4. personnalisé de votre code JS.

16voto

scw Points 401

J'ai eu la même erreur d'avoir deux références à différentes versions de jQuery.

Dans ma page principale:

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

Et également sur la page:

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

7voto

Ralph Lavelle Points 2643

J'ai eu ce problème récemment avec le jQuery de Validation de plug-in, à l'aide de Squishit, obtenant également le js d'erreur:

"undefined n'est pas une fonction"

Je l'ai corrigé en modifiant la référence à la unminified jquery.validate.js fichier, plutôt que de jquery.validate.min.js.

@MvcHtmlString.Create(
    @SquishIt.Framework.Bundle.JavaScript()
        .Add("~/Scripts/Libraries/jquery-1.8.2.min.js")
        .Add("~/Scripts/Libraries/jquery-ui-1.9.1.custom.min.js")
        .Add("~/Scripts/Libraries/jquery.unobtrusive-ajax.min.js")
        .Add("~/Scripts/Libraries/jquery.validate.js")
        .Add("~/Scripts/Libraries/jquery.validate.unobtrusive.js")
         ... more files

Je pense que la version compacte de certains fichiers, de la poursuite de l'compressé à l'aide de Squishit, par exemple, peut dans certains cas ne pas traiter manque des points-virgules et autres, @Dustin suggère, de sorte que vous pourriez avoir à expérimenter avec les fichiers que vous pouvez doublement compresser, et qui vous quitter pour Squishit ou ce que vous êtes en combinaison avec.

6voto

Jack Nicholsonn Points 154

Pour ceux qui sont là, qui ne pouvait pas résoudre ce problème, je l'ai fait en changeant ma 'ce' pour '$(this)' lors de l'utilisation de jQuery.

E. G:

$('.icon').click(function() {
    this.fadeOut();
});

Fixe:

$('.icon').click(function() {
    $(this).fadeOut();
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X