今日はrails new
、簡単な検索バーを作成しました。
<form>
<input id='search-bar' type='search' name='search'></input>
</form>
<a id='search-btn' href="#">searching!</a>
さて、いくつかのクリックハンドラーはどうですか!したがって、assets / javascripts / searches.js.coffee:
$('#search-btn').click ->
alert 'BOOM'
query = $('#search-bar').html
console.log query
そして...何も。だから私はChromeコンソールに行きます:
>$('a')
null
>$('body')
null
>$
function () { [native code] }
セレクターのないjQuery、あまり役に立ちません。ここで何が起こっているのですか?<script type="text/javascript" src='http://code.jquery.com/jquery-1.8.2.js'></script>
ページまたはlayout.html.erbに追加すれば、すべて問題ありません。
アセット/JavaScriptにあるにもかかわらずunderscore-min.js(.min.jsではないことに注意)がロードされないという同じ問題が発生しています。私の(変更されていない)application.jsを指定すると、現在のフォルダーがロードされます。
//= require jquery
//= require jquery_ujs
//= require_tree .
アップデート
Chromeインスペクターの[リソース]タブに移動してapplication.jsをチェックアウトすると、次のように表示されます。
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery_ujs
//= require_tree .
;
ディレクトリ内にjsファイルが適切に含まれているようには見えません