質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

2861閲覧

jQueryのクリックイベントを作成したが、処理が実行されない

YO14

総合スコア45

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/03/01 14:22

#実現したいこと
RailsでjQueryの動作確認
・erbファイルにデフォルトの文章、テキストボックス、ボタンを設置し、
テキストボックスに何かしら文章を入力しボタンを押したら、
デフォルトの文章がその文章に置き換わる

実行したソースコード

erb

1<p id="string">デフォルトの文章</p> 2<input type="text" id="text" placeholder="変更する文章"> 3<button id="button">変更する</button>

JavaScript

1//common.js 2$("#button").on("click", function(){ 3 var newText = $("#text").val(); //ここにブレークポイントを設置するも反応なし 4 $("#string").text(newText); 5});

現状

・テキストボックスに文章を入力し、ボタンを押しても、文章が置き換わらない
・chromeのデベロッパーツールで、該当のfunctionにブレークポイントを置いても、そこをそもそも処理が通過しない(一時停止状態にならない)

気になる点

・jsファイルは、common.jsというファイル名で作成したが、
デベロッパーツール>Sources>assets を開くと、ファイル名がcommon.self-~~~~~~body=1 というものになっている
・application.jsの記載を以下のようにしているが、正しいのかが分からない
//= require rails-ujs
//= require turbolinks
//= require jquery
//= require jquery_ujs
//= require_tree .

common.jsには、他にも$(document).ready(function() を記述しており、
そちらは画面表示時に動作しているため、「common.jsがそもそも読み込まれていない」ことは無い、と考えています。

知見がおありの方、ご回答いただけますと大変ありがたいです。宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

x_x

2020/03/02 02:09

common.js 全体を挙げてもらえるでしょうか?
YO14

2020/03/02 13:41

x_xさん 以下になります。 $(document).ready(function() { $("p#statuscheck").text("jQuery稼働テスト(稼働中)"); }); $("#button").on("click", function(){ var newText = $("#text").val(); $("#string").text(newText); });
x_x

2020/03/02 13:47

やはりそうでしたか。 すべて $(document).ready(function() { ~ }); 内に入れるとどうなりますか?
YO14

2020/03/02 13:55

$(document).ready(function() { $("p#statuscheck").text("jQuery稼働テスト(稼働中)"); $("#button").on("click", function(){ var newText = $("#text").val(); $("#string").text(newText); }); }); としたことで、ボタン押下によるテキスト置き換えができるようになりました。 Railsどうこうというより、jQueryの質問になってしまいますが、 $(document).ready(function(){ の中に、clickイベントなどは記述するものなのでしょうか。 $(document)~~~は、「ブラウザでページを読み込んだ時に準備するイベント」を記載するものだと思っていて、 clickイベントなどはページ表示後の画面操作なので、外に書くものだと思っていました。 この認識は誤りでしょうか。
x_x

2020/03/02 14:06

<script> が #button 出現後に書かれていれば外でも問題ないです。
guest

回答2

0

ベストアンサー

頻出する問題ですが一応回答を書いておきます。
id="button" が出現する前に書かれているため動いていないだけです。$(function() { ~ }); でドキュメント読み込み後に動くようにできます。

jQuery

1$(function() { 2 // ここに書く。 3});

https://api.jquery.com/jQuery/#jQuery3

投稿2020/03/02 14:12

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

普通にうごきますね
コンソールにエラーがでているか確認してください

投稿2020/03/02 00:25

yambejp

総合スコア114812

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/03/02 00:25

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function(){ $("#button").on("click", function(){ var newText = $("#text").val(); $("#string").text(newText); }); }); </script> <p id="string">デフォルトの文章</p> <input type="text" id="text" placeholder="変更する文章" value="123"> <button id="button">変更する</button>
YO14

2020/03/02 13:46

ご確認ありがとうございました。 特にコンソールでエラー表示は出ておりません。 ひとつ質問させていただきたいのですが、 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> ↑こちらは、erbファイル(application.html.erb?)の先頭に記述が必要なのでしょうか。 application.jsに //= require jquery //= require jquery_ujs //= require_tree . と記載したことで、jQueryが読み込まれるのだと思っているのですが・・・。
yambejp

2020/03/02 13:49

erbはjQueryを読んでるはずです。 回答はhtmlベースで行うための処理です。 ブラウザの開発ページでjQueryが読まれているかどうかは判断つくでしょう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問