問題点
app/assets/javascripts/diary/new.js
と便宜的にjsファイルを構成しています。
そしてapp/assets/javascripts/application.js
には
//= require jquery3 //= require popper //= require rails-ujs //= require activestorage //= require bootstrap-material-design/dist/js/bootstrap-material-design.js //= require_tree .
として//= require_tree .
から全てのjsファイルを読み込めるはずです。
試しに簡易的にnew.js
にて
$(function (){ document.getElementById('hello').textContent = "Hello JavaScript" });
としました。
それに対応するdiaries/new.html.slim
には
p#hello | Hello World
とhello
idを持ったdivの中身を書き換えさせようとしてもいずれの結果も書き変わらないのですが、原因がわかりません。
ちなみにturbolinksは無効化しています。
javascript
1onload = function() { 2 alert('Hello JavaScript'); 3};
もやってみましたが反応がありませんでした。
よろしくお願いいたします
追記ファイル
diary/new.js
に
btn.btn#foo-btn onclick="js_alert()" hoo
としてnew.js
には
function js_alert(){ alert('Hello JavaScript'); }
としました。
new.js ファイルの保存されたディレクトリは、プロジェクト内のどこにありますか?
また、ブラウザの開発者ツールで new.js が読み込まれていることを確認しましたか?
ご回答ありがとうございます。
しかし、上のファイルに追記致しましたが、興味深いことにビュー側に、 新たにボタンを構成して、onclickとしたら、alertが表示されました。
htmlから発火して、反応が起きたのが確認できる点で、ファイルは読み込まれており、
これは`new.jsに以前CarrierWaveのプレビュー機能を作ったのですが、こちらもファイルをアップロードするタイミングの`onchange`メソッドでビューから動いていたのですが、なぜか今回の、jsファイルからのコードがうまくいきません。
なのでファイル自体は読み込めているということですが、なぜか動かないので疑問です。
ごめんなさい、コードの張り替えで回答文が消えてました。
`new.js`はapplication.jsに //= require_tree . という記載をしたのでjsファイルを自動的に読み込んでくれる認識でいます、実際にはビューファイルから`new.js`のメソッドが起動したので読み込みはできていると思いますが、`js`ファイルからの発火ができない感じです
回答1件
あなたの回答
tips
プレビュー