とても混乱しています…自分のサイトで作業していて、jQueryを追加しました。テストしたところ、jQuery は何も行わないことがわかりました。次に、考えられる最もシンプルでありながらわかりやすいコードを試してみました。
<script type="text/javascript">
$("html").click(function() {
$("html").html("");
});
</script>
しかしそれも何も起こりませんでした。そこで、js コンソールで同じコードを試してみましたが、次のエラーが返されました。
Uncaught TypeError: $ is not a function
at <anonymous>:2:1
at Object.InjectedScript._evaluateOn (<anonymous>:848:140)
at Object.InjectedScript._evaluateAndWrap (<anonymous>:891:34)
at Object.InjectedScript.evaluate (<anonymous>:627:21)
$ を入力するだけで「未定義」が返されます。
調査したところ、Gemfile を誤って移動してしまい、サーバーが jquery-rails gem にアクセスできなかった可能性があることがわかりました。しかし、元に戻してサーバーを再起動しても、問題は解決しませんでした。
次に、ページに欠陥のあるコードがあり、jQuery の実行を妨げているのではないかと考えました。すべてのコードを削除して空のドキュメントにし、実行して再試行しましたが、コンソールに同じエラーが表示されました。
私のアプリの先頭には次のものが含まれています。
<head>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
</head>
私の app/assets/javascripts/application.js には //= require jquery という行が含まれています
そしてバンドルインストールは「jquery-rails 4.1.1」を返します。
以前に同じページで多くの jQuery を実行しましたが、問題はありませんでした。私のサーバーが突然 jQuery を理解できなくなったようです。いったい何が起こっているのでしょうか?
次のように jQuery 関数でラップします。
// Note the "$" inside function() - that's the key
jQuery( document ).ready(function( $ ) {
$("html").click(function() {
$("html").html("");
});
});