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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1380閲覧

jQueryがうまく反映しない。

somamos

総合スコア0

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/08/20 06:51

前提・実現したいこと

「ボタンを押すと下に文が表示される(fadeInメソッドを使ってアニメーションをつける)」プログラムを作っています。

ここでは、Node.jsを導入した後、ポート番号を使ってapp.jsファイルを実行するとサーバが呼び出され、ejsファイルにアクセスするようにしています。
アクセスに成功すると、ejsファイルの実行結果が画面表示されるのですが、
CSSが反映されたものの、"ボタンをいくら押してもなかなか下の文が出てきません"。
jQueryで作成したファイルが正しく反映されていないかと思われます。

ボタンを押すとjQueryファイルが正しく反映するための対処方法を教えていただけると嬉しいです。
宜しくお願い致します。

該当のソースコード

js

1//app.js  ejsファイルにアクセスするためのサーバ呼び出し 2const express = require('express'); 3const app = express(); 4 5app.use(express.static('public')); 6 7app.get('/', (req, res) => { 8 res.render('sample.ejs'); //sample.ejs・・・画面表示用ファイル 9}); 10 11app.listen(3000);

ejs

1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="utf-8"> 5 <title>Sample</title> 6 <link rel="stylesheet" href="/css/sample.css"> <!--CSSファイルお読み込み(publicからの相対パス)--> 7 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> 8 </head> 9 <body> 10 <div class="btn">文を表示</div> 11 <h1>Hello World!</h1> 12 13 <script src="sample.js"></script> <!--sample.js・・・jQueryで作成したファイル--> 14 </body> 15</html>

css

1.btn { 2 display: inline-block; 3 cursor: pointer; 4 color: white; 5 background-color: rgb(0, 204, 255); 6} 7 8h1 { 9 display: none; 10}

jQuery

1//jQueryでアニメーションをつける 2$(function() { 3 $('.btn').click(function() { 4 $('h1').fadeIn(); 5 }); 6});

試したこと

Node.jsを導入せずにejsファイルではなくhtmlファイルのままで開くと、jQueryで作成したjsファイルが正しく反映されます。

補足情報(FW/ツールのバージョンなど)

ファイルの構成としては、
・①publicフォルダ、②viewsフォルダ、③サーバ呼び出しのためのjsファイル(app.js)、④jQueryのファイル はすべて同じルート上にある
・publicフォルダの中にcssフォルダ、さらにcssフォルダの中にcssファイルがあり、viewフォルダの中にはejsファイルがある
という構成になっています。

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

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

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

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

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

m.ts10806

2021/08/20 07:19

なかなか のというのは時間経ったら出てくるというニュアンスに見えますが、事実をありのまま表現いただけますか?
yambejp

2021/08/20 07:46

CSSやHTML自体は想定通りなのでしょうか? 開発ツール上エラーなどはでていませんか?
somamos

2021/08/20 08:06

なかなかというのは、一度ボタンを押したけど反応がなく、繰り返し押してみたが全く文が出てきてくれないという状態がずっと続いている、という意味になります。 CSS、HTML自体が想定通り動作していることは確認済みです。 ただ、開発ツールで確認したら「sample.js:1 Failed to load resource: the server responded with a status of 404 (Not Found)」というエラーが出ておりました。読む限りでは、サーバがjQueryで作成するファイル(sample.js)を取得できていないということでしょうか。。。
yambejp

2021/08/20 08:36

404エラーであればファイルのおいてあるディレクトリとかが間違っているのかも
somamos

2021/08/20 09:19

ありがとうございます。ファイルのおいてあるディレクトリですが、そのファイルはディレクトリ構造でいうと最上位(public,viewsフォルダと同じところ)に位置しているんですね。 ・そのファイルをviewsフォルダの中に入れて、プログラムの最後部分のscriptタグのところを、パスを考慮してsrc="/views/sample.js"に直したり、 ・ファイルをそのままにして、src="/sample.js"としたり するなど試してみたのですが、実行してもやはり同じエラーが出てきます(汗)
yambejp

2021/08/20 09:22

CSSがただしく適用されているならためしに 「/CSS」にsample.jsおいてみて <script src="/css/sample.js"></script> で参照できるか検証してみては?
somamos

2021/08/20 09:53

話していただいた通り、sample.jsをcssフォルダにおいてscriptタグのところを書き換えてみたら、想定通りの正しい動作になりました!! ありがとうございます、本当に助かりました!
guest

回答1

0

自己解決

(yambejpさまのご回答です。)
sample.jsをcssフォルダに移し、scriptタグを<script src="/css/sample.js"></script>に書き換える。

投稿2021/08/20 09:54

somamos

総合スコア0

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

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

yambejp

2021/08/20 09:58

相対位置の問題っぽいので、公開パスのルートにjsというディレクトリをつくって そこに入れて運用してみてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問