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

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

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

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

jQuery

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

HTML

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

CSS

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

Q&A

解決済

2回答

1631閲覧

アコーディオンメニューが半開きになってしまいます。

takawork

総合スコア95

JavaScript

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

jQuery

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

HTML

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

CSS

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

1グッド

0クリップ

投稿2021/01/04 10:26

編集2021/01/04 11:40

https://codepen.io/chriswrightdesign/pen/cmanI
上記のアコーディオンメニューをサイトに使おうとコピペしたのですが、
動かなかったのでjavaScriptの先頭にjQueryをつけたらそれっぽく動きました。
そもそも先頭にjQueryをつけるのが間違っていたとかでしょうか?
でも灰色の部分が見えていたり、コンソールを調べるとエラーが出ていたりしてしまいます。
↓私がコピペしたもの。
イメージ説明
↓コンソールのエラー。62行目とはjSの最後尾です。
イメージ説明

どうすれば直りますでしょうか?

<section class="question-content"> <div class="question-content-wrap"> <div class="question-content-wrap-ttl"> <h1>よくある質問(FAQ)</h1> </div> <div class="question-content-wrap-list"> <div class="question-content-wrap-list-container"> <div class="accordion"> <dl> <dt> <a href="#accordion1" aria-expanded="false" aria-controls="accordion1" class="accordion-title accordionTitle js-accordionTrigger"> 1タイトル</a> </dt> <dd class="accordion-content accordionItem is-collapsed" id="accordion1" aria-hidden="true"> <p>1内容</p> </dd> <dt> <a href="#accordion2" aria-expanded="false" aria-controls="accordion2" class="accordion-title accordionTitle js-accordionTrigger"> 2タイトル</a> </dt> <dd class="accordion-content accordionItem is-collapsed" id="accordion2" aria-hidden="true"> <p>2内容</p> </dd> <dt> <a href="#accordion3" aria-expanded="false" aria-controls="accordion3" class="accordion-title accordionTitle js-accordionTrigger"> 3タイトル</a> </dt> <dd class="accordion-content accordionItem is-collapsed" id="accordion3" aria-hidden="true"> <p>3内容</p> </dd> </dl> </div> </div> </div> </div> </section>
.question-content { height: auto; min-height: 600px; background-color: white; border: 1vw solid #5BCBAC; padding-top: 30px; } .question-content-wrap { max-width: 1080px; margin: 0 auto; } .question-content-wrap-ttl { text-align: center; } .question-content-wrap-ttl h1 { font-weight: bold; font-size: 42px; margin-bottom: 0px; } .accordion dl, .accordion-list { border: 1px solid #ddd; } .accordion dl:after, .accordion-list:after { content: ""; display: block; height: 1em; width: 100%; background-color: #2ba659; } .accordion dd, .accordion__panel { background-color: #eee; font-size: 1em; line-height: 1.5em; } .accordion p { padding: 1em 2em 1em 2em; } .accordion { position: relative; background-color: #eee; } .question-content-wrap-list-container { max-width: 960px; margin: 0 auto; padding: 2em 0 2em 0; } .accordionTitle, .accordion__Heading { background-color: #38cc70; text-align: center; font-weight: 700; padding: 2em; display: block; text-decoration: none; color: #fff; -webkit-transition: background-color 0.5s ease-in-out; transition: background-color 0.5s ease-in-out; border-bottom: 1px solid #30bb64; } .accordionTitle:before, .accordion__Heading:before { content: "+"; font-size: 2.5em; line-height: 0.5em; float: right; -webkit-transition: -webkit-transform 0.3s ease-in-out; transition: -webkit-transform 0.3s ease-in-out; transition: transform 0.3s ease-in-out; transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out; } .accordionTitle:hover, .accordion__Heading:hover { background-color: #2ba659; } .accordionTitle:after, .accordion__Heading:after { content: "Q"; font-size: 2.5em; line-height: 0.5em; float: left; -webkit-transition: -webkit-transform 0.3s ease-in-out; transition: -webkit-transform 0.3s ease-in-out; transition: transform 0.3s ease-in-out; transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out; } .accordionTitleActive, .accordionTitle.is-expanded { background-color: #2ba659; } .accordionTitleActive:before, .accordionTitle.is-expanded:before { -webkit-transform: rotate(-225deg); transform: rotate(-225deg); } .accordionItem { height: auto; overflow: hidden; max-height: 50em; -webkit-transition: max-height 1s; transition: max-height 1s; } @media screen and (min-width: 48em) { .accordionItem { max-height: 15em; -webkit-transition: max-height 0.5s; transition: max-height 0.5s; } } .accordionItem.is-collapsed { max-height: 0; } .no-js .accordionItem.is-collapsed { max-height: auto; } .animateIn { -webkit-animation: accordionIn 0.45s normal ease-in-out both 1; animation: accordionIn 0.45s normal ease-in-out both 1; } .animateOut { -webkit-animation: accordionOut 0.45s alternate ease-in-out both 1; animation: accordionOut 0.45s alternate ease-in-out both 1; } @-webkit-keyframes accordionIn { 0% { opacity: 0; -webkit-transform: scale(0.9) rotateX(-60deg); transform: scale(0.9) rotateX(-60deg); -webkit-transform-origin: 50% 0; transform-origin: 50% 0; } 100% { opacity: 1; -webkit-transform: scale(1); transform: scale(1); } } @keyframes accordionIn { 0% { opacity: 0; -webkit-transform: scale(0.9) rotateX(-60deg); transform: scale(0.9) rotateX(-60deg); -webkit-transform-origin: 50% 0; transform-origin: 50% 0; } 100% { opacity: 1; -webkit-transform: scale(1); transform: scale(1); } } @-webkit-keyframes accordionOut { 0% { opacity: 1; -webkit-transform: scale(1); transform: scale(1); } 100% { opacity: 0; -webkit-transform: scale(0.9) rotateX(-60deg); transform: scale(0.9) rotateX(-60deg); } } @keyframes accordionOut { 0% { opacity: 1; -webkit-transform: scale(1); transform: scale(1); } 100% { opacity: 0; -webkit-transform: scale(0.9) rotateX(-60deg); transform: scale(0.9) rotateX(-60deg); } }
jQuery(function(){ var d = document, accordionToggles = d.querySelectorAll('.js-accordionTrigger'), setAria, setAccordionAria, switchAccordion, touchSupported = ('ontouchstart' in window), pointerSupported = ('pointerdown' in window); skipClickDelay = function(e){ e.preventDefault(); e.target.click(); } setAriaAttr = function(el, ariaType, newProperty){ el.setAttribute(ariaType, newProperty); }; setAccordionAria = function(el1, el2, expanded){ switch(expanded) { case "true": setAriaAttr(el1, 'aria-expanded', 'true'); setAriaAttr(el2, 'aria-hidden', 'false'); break; case "false": setAriaAttr(el1, 'aria-expanded', 'false'); setAriaAttr(el2, 'aria-hidden', 'true'); break; default: break; } }; //function switchAccordion = function(e) { console.log("triggered"); e.preventDefault(); var thisAnswer = e.target.parentNode.nextElementSibling; var thisQuestion = e.target; if(thisAnswer.classList.contains('is-collapsed')) { setAccordionAria(thisQuestion, thisAnswer, 'true'); } else { setAccordionAria(thisQuestion, thisAnswer, 'false'); } thisQuestion.classList.toggle('is-collapsed'); thisQuestion.classList.toggle('is-expanded'); thisAnswer.classList.toggle('is-collapsed'); thisAnswer.classList.toggle('is-expanded'); thisAnswer.classList.toggle('animateIn'); }; for (var i=0,len=accordionToggles.length; i<len; i++) { if(touchSupported) { accordionToggles[i].addEventListener('touchstart', skipClickDelay, false); } if(pointerSupported){ accordionToggles[i].addEventListener('pointerdown', skipClickDelay, false); } accordionToggles[i].addEventListener('click', switchAccordion, false); } })();
ForestSeo👍を押しています

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

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

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

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

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

m.ts10806

2021/01/04 10:52

html は全体提示してください。 あと jQuery(function () {の中に jQuery(function () { 全く意味がないです。
m.ts10806

2021/01/04 10:53 編集

またSASSのままのコード提示されても今回つけられたタグだけではこちらで動作確認できませんので、 コンパイル後のCSSをご提示ください。
takawork

2021/01/04 10:58

コードを編集させて頂きました。よろしくお願いします。
takawork

2021/01/04 11:01

jSで全く異なるものを載せていました。申し訳ありませんでした。追記したのでよろしくお願いします。
m.ts10806

2021/01/04 11:02

あぁ・・SCSSは分かってたんですね。書いてないから分からなかった。
m.ts10806

2021/01/04 11:03

JavaScriptもインデント滅茶苦茶ですね。codepenのほうはきちんと揃ってるように見えるのですけど。
takawork

2021/01/04 11:05

VSコード→terateilにコピペすると、インデントが崩れてしまうのですが、何か崩れない方法とかってありますか?(質問とズレてしまいすみません。)
m.ts10806

2021/01/04 11:13

teratail です。 VSCode使ってないので分かりませんが、 タブインデントと半角スペースインデントが混ざってたりしませんか? 統一すると良いと思います。
takawork

2021/01/04 11:40

jsとcssのインデントを手直ししたのでよろしくお願いします。 jsの頭のjQueryを取ると動かなくなります。
guest

回答2

0

ベストアンサー

エラーからだけ言えること

  • my_script.jsより前にjQuery本体読み込んでないんじゃないかな

javaScriptの先頭にjQueryをつけたらそれっぽく動きました。

そもそも先頭にjQueryをつけるのが間違っていたとかでしょうか?

引用先のコードの意味を理解してから使いましょう、、、、としか言えません。

引用先のコードを見る限り、jQuery不要で動くはずです。
jQueryの記法つかってませんから。


※以下、コンパイル後のCSSが提示される前に書いた内容であるため、質問と合致していません。

ただ、CSS(SCSS)とある通り、一般的に言われているCSSではないです。
SCSSをコンパイルできる環境、もしくはコンパイル後のCSSが必要です。

質問者さんの過去質問やタグを見た感じ、SCSSとCSSの違いや使い方が分かってないことが原因のように思います。

投稿2021/01/04 10:56

編集2021/01/04 11:05
m.ts10806

総合スコア80875

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

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

takawork

2021/01/05 05:47

my_script.jsより前にjQuery本体読み込んでないんじゃないかな →jQueryは一番始めに読み込んでいます。 引用先のコードを見る限り、jQuery不要で動くはずです。 →my_script.jsにコードをそのままコピペしたのですが、動きませんでした。なぜかjQueryをつけると動きます。ワードプレスだからとかでしょうか?ちょっと混乱してます。
guest

0

js

1})(); 2//^^これいらないと思います。

投稿2021/01/05 08:49

Lhankor_Mhy

総合スコア36960

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

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

takawork

2021/01/12 08:01

そのコードは一番最初の ``` jQuery(function(){ ``` の( と{の終わりの括弧なので必要だと思いますが、外した方が良いのでしょうか? 外すとエラーが出てしまい、コンパイルができないです...
Lhankor_Mhy

2021/01/12 08:04

ご解決されたようですから、外さなくてもいいのではないでしょうか。
takawork

2021/01/12 08:16

一応動くようにはなったのですが、「もしかして無理やり動かしてるだけなのでは?」と思って気になって質問してみました。
Lhankor_Mhy

2021/01/12 08:19

エラーも出ていないなら気にする必要はないと思います。 ところで、回答は、^^で指しているものがいらない、という意味です。わかりにくくてすみません。 })(); ↓ });
takawork

2021/01/12 08:26

^^は矢印の先端みたいな感じで使っていたということでしょうか? (^o^)/←こういう顔文字の目かと思ってました!
Lhankor_Mhy

2021/01/12 08:30 編集

エラーメッセージなどでよく使われてる記法なんですよね…… ^^^^^^^^^^------------こんな感じで。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問