95 votes

JSLint : a été utilisé avant d'être défini

Bonjour, j'ai les 3 fichiers javascript.

  • jquery.js
  • utility.js
  • file1.js

Dans file1.js j'ai

jQuery.noConflict()
jQuery(document).ready(function($) { 
 // ....
});

Je reçois une erreur "jQuery" a été utilisé avant d'être défini. et 'document' a été utilisé avant d'être défini.

Comment puis-je me débarrasser en toute sécurité de cet avertissement.

Si je le fais

var document = document || {}; 

alors dans mon utility.js s'il est utilisé, il serait nul dans IE et ok dans firefox.

Quelle est la meilleure solution à ce problème ?

169voto

Quentin Points 325526

Desde la documentation

JSLint reconnaît également une directive /*global */ qui peut indiquer à JSLint que les variables utilisées dans ce fichier ont été définies dans d'autres fichiers. Le commentaire peut contenir une liste de noms séparés par des virgules. Chaque nom peut éventuellement être suivi d'un deux-points et de true ou false, true indiquant que la variable peut être assignée par ce fichier, et false indiquant que l'assignation n'est pas autorisée (ce qui est la valeur par défaut). La directive respecte la portée de la fonction.

Certains globaux peuvent être prédéfinis pour vous. Sélectionnez l'option Assumer un navigateur (browser) pour prédéfinir les propriétés globales standard fournies par les navigateurs Web, telles que document et addEventListener.

Exemple :

/*jslint browser: true*/
/*global $, jQuery*/

31voto

stanton Points 269

Comme le dit Quentin, il y a un /*global*/ directive.

Voici un exemple (mettez-le en haut du fichier) :

/*global var1,var2,var3,var4,var5*/

Assurez-vous que la déclaration globale initiale est sur la même ligne que /* ou bien il se casse.

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