質問: 現在BracketsでjQueryのコードを書こうとしていますが、最初からエラーが出ていて意味も対処法も調べてもわからないので教えていただけないでしょうかm(_ _)m .jsのファイルに$(function(){});を最初に書いた時点でエラーが出てきます。 試しに$('p').hide();を書いてみたところ正常に動作しておりプレビューで確認できていますがエラーがたくさん出てきます。 ちなみにHTMLとCSSではエラーは出てきません。 どうぞよろしくお願いします。 使用環境 ・Brackets 1.11.0 記載内容 $(function(){ $('p').hide(); }); エラー内容(JSLint) ・'$' was used before it was defined. $(function(){ ・Expected exactly one space between 'function' and '('. $(function(){ ・Expected exactly one space between ')' and '{'. $(function(){ ・Missing space between ')' and '{'. $(function(){ ・Missing 'use strict' statement. $('p').hide(); エラー内容(ESLint) ・ERROR: '$' is not defined. [no-undef] $(function() { ・ERROR: '$' is not defined. [no-undef] $('p').hide(); HTML内での読み込み
回答: 自分はjslintを使ったことありませんでしたが挑戦してみました。 jslintは実行前のチェックですが、'$'などソース上で定義されていない識別子については、それが定義済みであることを明言してやらないと「多分、ブラウザー上でjqueryを読み込んでいるんだろうな・・・」などと都合のよい解釈はしてくれないようです。以下ではソース上のglobal directiveで'$'がグローバルに宣言済みであることを指定した例です。 ``` /*global $*/ "use strict"; $(function () { console.log('hello'); $('p').hide(); }); ``` 警告が出なくなるまで結構な回数編集しました。functionの直後やopen brace('{')の直前にスペースを1個置けという指摘は「なるほど」と思いましたが「タブはいかん」とか「インデントは4つにしろ」と言われたのにはビックリしました。なんかすごいです...jslint ご参考: Bracketsはファイルセーブ時に自動的にjslintが動いてくれたりするそうなので、jslintのオプションを別途指定できたりするのかも知れませんが、自分はBracketsをさわったことがないので、その点についてはコメントできません。