2015-05-30 73 views
5

我正在嘗試使以下jQuery代碼JSLint兼容。JSLint - 未聲明'jQuery'警告

(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)); 

我的代碼工作正常。我只是想清除JSLint警告。我不明白爲什麼JSLint在}(jQuery));(最後一行)給我一個undeclared 'jQuery'的警告。

UPDATE
將jQuery聲明爲全局變量已清除警告。

+0

可能重複對於JQuery?](http://stackoverflow.com/questions/3920012/how-can-i-use-jslint-for-a-segment-of-code-which-depends-on-jquery) –

回答

8

如果您使用jslint.com,你需要如果您使用jslint.com將jQuery添加到全局變量下選擇

+0

謝謝。這清除了警告。你知道爲什麼這是必要的嗎? – user3421311

+0

np ... jslint解析代碼時沒有假設或哪些變量是全局的,除非您在選項部分中設置它們。 –

+0

@ user3421311如果您不告訴JSLint哪些變量來自另一個範圍,則必須假定您沒有正確聲明某些內容。也就是說,JSLint每次只讀一個文件,如果你有'var spam =「ham」;',sapm =「spiced ham」;'是拼寫錯誤還是'sapm'從一個父範圍 - 除非你告訴它*和*你的程序員。這就是爲什麼它很有用。 – ruffin

0

,你需要更換你的代碼的第一行。您需要添加「全局jQuery」作爲註釋行。看到這裏..

取代: (函數($){

使用: /*全球jQuery的*/
的jQuery(函數($){ .....

一切順利。
Puspendu蒙達爾

的[我如何使用的JSLint的代碼段依賴