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

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

新規登録して質問してみよう
ただいま回答率
85.35%
onclick

onclickとはユーザーのクリック処理を指します。これは"onmousedown"(押下)と"onmouseup"(押上)の二つの事象の組み合わせです

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

851閲覧

[JavaScript] ブラウザ上の要素の表示/非表示を切り替えたい

退会済みユーザー

退会済みユーザー

総合スコア0

onclick

onclickとはユーザーのクリック処理を指します。これは"onmousedown"(押下)と"onmouseup"(押上)の二つの事象の組み合わせです

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/10/25 09:26

railsでアプリケーションを作成しています。
Javascriptを使用してボタンのクリックで要素の表示/非表示を切り替えたいのですが、クリックをしても動きがない状況です。
コンソールを確認したところUncaught TypeError: Cannot set property 'onclick' of nullというエラーが表示されるのですがなぜnullになるのかがわかりません。
各ページのコードは以下のようになっています。

html.erb

html

1 <button type=button id="info-btn" >ログイン情報</button> 2 <div class="login-info" id="js-login-info"> 3 <p>アドレス:hoge <br>パスワード:hogehoge</p> 4 </div>

css

1.login-info { 2 display: none; 3}

js

1document.getElementById("info-btn").onclick = function(){ 2 const loginInfo = document.getElementById("js-login-info"); 3 if(loginInfo.style.display=="block"){ 4 loginInfo.style.display = "none"; 5 }else{ 6 loginInfo.style.display = "block"; 7 }; 8};

application.jsは以下のとおりです。

require("@rails/ujs").start() require("turbolinks").start() require("@rails/activestorage").start() require("channels") require("../map") require("../click")←ここで該当のjsファイルを読み込んでいます。

エラー文章の中にbootstrapという記述があるのですがbootstrapの読み込みが関係しているのでしょうか?
(以下エラー文です。)

click.js:16 Uncaught TypeError: Cannot set property 'onclick' of null at Object../app/javascript/click.js (click.js:16) at __webpack_require__ (bootstrap:19) at Object../app/javascript/packs/application.js (application.js:7) at __webpack_require__ (bootstrap:19) at bootstrap:83 at bootstrap:83

わかる方いましたら教えていただきたいです。
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

以下の事象と同様かもしれません。
ご確認ください。
https://teratail.com/questions/165530

投稿2020/10/25 09:37

yuxki

総合スコア110

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

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

退会済みユーザー

退会済みユーザー

2020/10/25 11:44

該当のビューファイルの一番下に <%= javascript_pack_tag 'click' %> と記述して個別でjsファイルを呼び出すことで解決しました。 読み込む順番が重要ということですね。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問