2015-05-30 15 views
5

Sto cercando di rendere il seguente codice jQuery conforme a JSLint.JSLint - Avviso 'jQuery' non dichiarato

(function ($) { 
    "use strict"; 
    $('.addition').click(function() { 
     $('.textbox:last,.addition:last,.subtraction:last,.replace:last').clone(true).appendTo('.replace:last'); 
     $('.textbox:last').val(""); 
     $('.addition:not(:last),.subtraction:not(:last)').attr('disabled','true'); 
    }); 

    $('.subtraction').click(function() { 

     if($('.replace').length === 1) { 
      $('.subtraction').click(function (event) { 
       event.preventDefault(); 
      }); 
     } else { 
      $('.textbox:last,.addition:last,.subtraction:last,.replace:last').remove(); 
      $('.addition:last,.subtraction:last').removeAttr('disabled'); 
     } 
    });  
}(jQuery)); 

Il mio codice funziona correttamente. Sto solo cercando di cancellare gli avvisi JSLint. Non capisco perché JSLint mi sta dando un avviso undeclared 'jQuery' sulla linea }(jQuery)); (ultima riga).

UPDATE
Dichiarare jQuery come una variabile globale ha eliminato l'avviso.

+0

possibile duplicato di [Come posso utilizzare JSLint per un segmento di codice che dipendono s su JQuery?] (http://stackoverflow.com/questions/3920012/how-can-i-use-jslint-for-a-segment-of-code-which-depends-on-jquery) –

risposta

8

Se stai usando jslint.com, è necessario aggiungere jQuery per variabili globali in Opzioni

+0

Grazie. Questo ha chiarito l'avvertimento. Sai perché è necessario? – user3421311

+0

np ... jslint analizza il codice senza presupposti o quali variabili sono globali se non le si imposta nella sezione delle opzioni. –

+0

@ user3421311 Se non si specifica a JSLint quali variabili provengono da un altro ambito, si deve presupporre che non si sia dichiarato correttamente qualcosa. Cioè, JSLint va un file alla volta e non può dire la differenza tra, se hai 'var spam =" ham ";', sia 'sapm =" spiced ham ";' è un errore di ortografia o 'sapm' è da un ambito genitore - a meno che tu non dica * e * ai tuoi colleghi programmatori. Ed è per questo che è utile. – ruffin

0

Se stai usando jslint.com, è necessario sostituire prima riga del codice. è necessario aggiungere "jQuery globale" come linea di commento. Vedi qui ..

sostituire: (function ($) {

utilizzando: /* globale * jQuery/
jQuery (function ($) { .....

tutto il meglio.
Puspendu Mondal