- 受付中
報酬付き
WordPressの質問(q10297398)の続
another_que_answer.php 393行目の divUserIcon.appendChild(usericonImg); の usericonImg はどのように定義すべきでしょうか? 質問画面ではアップロードファイルの後にアイコン画像のコードが書かれており2つの処理をまとめておくことが出来たのですが、回答画面では順番が逆になっているため悩んでおります。 先に var usericonImg; のみ宣言してしてみたのですがエラーが表示されておりどのように書けばよいかアドバイスお願い致します。 ※エラー文 TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'. at 質問回答画面/:462:21 ※最新コード https://github.com/i6Grja3R/sample_theme.git ※質問回答画面 https://www.irasuto.cfbx.jp/%e8%b3%aa%e5%95%8f%e5%9b%9e%e7%ad%94%e7%94%bb%e9%9d%a2/
- みんなの回答 (27)
- 専門家の回答
みんなの回答
- dell_OK
- ベストアンサー率13% (766/5720)
・確認画面送信ボタンの if 分岐コードが分からず調べて質問をしてみたのですが、想像全く違うコードになってしまうため困惑しております。 ひとまず、確認画面送信ボタン要素作成のコードを response.js に引っ越しして関数を作ってみてください。 その関数の引数はひとつです。 画面の種類を示すものなので formType にでもしましょうか。 1 なら質問画面、2 なら回答画面ということにしましょう。 それで呼ぶ側と関数側の処理を書いてみてください。
- dell_OK
- ベストアンサー率13% (766/5720)
引数を追加してください。 function create_image_parts(image_class, usericonIndex, usericonImg) { この関数にこの処理は不要です。 const comment_area = document.createElement("div");
- dell_OK
- ベストアンサー率13% (766/5720)
・要素が存在しないというエラーが発生しており プロパティがないエラーだと思います。 原因は前回の私の回答に誤りがあったことに関係しています。 訂正します。 ~~~~誤 引数を追加したのと、以下の2行をなくしました。 var image_count = 0; usericonImg = document.createElement("img"); ~~~~正 引数を追加したのと、以下の2行をなくしました。 var usericonImg; usericonImg = document.createElement("img"); ~~~~ ・const image_area = document.createElement("div"); をコメントアウトするだけでよいのでしょうか? そこではありません。 回答No.23の後半「変更前の3行目は関数へ引っ越しです。」からをご覧ください。 関数の return の位置と内容、および、その直前の処理です。 ・bbs_quest_input.php (質問画面)は下記コードで問題ないでしょうか? 問題ありません。
補足
Q.プロパティがないエラーだと思います。 原因は前回の私の回答に誤りがあったことに関係しています。 訂正します。 A.回答ありがとうございます。 修正してみたところ別のエラーが発生した為、原因を探しております… ※ エラー文 ReferenceError: usericonImg is not defined at create_image_parts (response.js?ver=6.6.2:95:13) at 質問回答画面/:400:36 Q.そこではありません。 回答No.23の後半「変更前の3行目は関数へ引っ越しです。」からをご覧ください。 関数の return の位置と内容、および、その直前の処理です。 A.回答ありがとうございます、申し訳ありませんご指摘いただいた内容を読んだところ理解出来ました。 ※ 最新コード https://github.com/i6Grja3R/sample_theme.git
- dell_OK
- ベストアンサー率13% (766/5720)
・引数を渡して判断するという意味がよく分からないのですが、下記コードのようにそれぞれ違うコードを探してそれを比較するのでしょうか? そうです。 ・const divImagePartial を const image_area に変更するんですね response.js の create_image_parts() の方も修正しておいてくださいね。 ・➀ ReferenceError: usericonImg is not defined これは面倒ですね。 この方法がいいのかわかりませんが、 直接外部変数は使いたくないので、 関数外で定義して引数で渡し、 関数内で加工することにしてみましょう。 呼ぶ側はこうです。 usericonImg の定義と、それを引数で渡します。 ---- /* ファイルアップロード要素作成 */ const usericonImg = document.createElement("img"); const image_area = create_image_parts("uploadfile-area", 0, usericonImg); ---- 関数側はこうです。 ---- /* ファイルアップロード要素作成 */ function create_image_parts(image_class, usericonIndex, usericonImg) { const image_area = document.createElement("div"); var image_count = 0; const divImagePartial = document.createElement("div"); // div (子)を生成 divImagePartial.classList.add(image_class); // classの追加 for (let i = 0; i < blobType.length; i++) { if (i == usericonIndex) { usericonImg.style.maxHeight = "85px"; ---- 引数を追加したのと、以下の2行をなくしました。 var image_count = 0; usericonImg = document.createElement("img"); ・➁ ReferenceError: comment_area is not defined ファイルアップロード要素作成を引っ越した時(update45)に、 この行がなくなったようなので戻しておいてください。 ---- const comment_area = document.createElement("div"); ----
補足
Q.引数を渡して判断するという意味がよく分からないのですが、下記コードのようにそれぞれ違うコードを探してそれを比較するのでしょうか? A.回答ありがとうございます、変数定義で迷っていたところ dell_ok さんに関数外で定義して引数で渡す方法を教えて頂き、そちらの方法で考えていたのですが要素が存在しないというエラーが発生しており、問題を解決してからになりそうです… ・const divImagePartial を const image_area に変更するんですね Q.response.js の create_image_parts() の方も修正しておいてくださいね。 A.回答ありがとうございます、const image_area = document.createElement("div"); をコメントアウトするだけでよいのでしょうか? Q.これは面倒ですね。 この方法がいいのかわかりませんが、 直接外部変数は使いたくないので、 関数外で定義して引数で渡し、 関数内で加工することにしてみましょう。 A.アドバイスありがとうございます、bbs_quest_input.php (質問画面)は下記コードで問題ないでしょうか? /* ファイルアップロード要素作成 */ const usericonImg = document.createElement("img"); const image_area = create_image_parts("image-partial", 3, usericonImg); Q.ファイルアップロード要素作成を引っ越した時(update45)に、 この行がなくなったようなので戻しておいてください。 ---- const comment_area = document.createElement("div"); ---- A.回答ありがとうございます。 修正してみたのですが、要素が存在しないと表示されてしまいます… どうすればよいでしょうか?アドバイスお願い致します。 ※ エラー文 TypeError: Cannot read properties of undefined (reading 'style') at create_image_parts (response.js?ver=6.6.2:95:25) at 質問回答画面/:400:36 ※ 最新コード https://github.com/i6Grja3R/sample_theme.git
- dell_OK
- ベストアンサー率13% (766/5720)
・ひとつめの child 生成のみ const ではなく let にするのは何故でしょうか? こちらなどご覧ください。 https://techplay.jp/column/1619 ・change1(); をどうすればよいのか分からないのですが 回答画面では"STEP1 入力"や"STEP2 確認"を表示しないのでしょうか。 表示するのでしたらこの処理を活かすといいです。 表示しないのでしたら処理中のページが質問画面か回答画面かを引数を渡して、その引数で判定するといいと思います。 ・このように共通部分に含まれていても関数が未定義の場合どうすればよいでしょうか? この場合は定義すれば解消されます。 ----変更前 /* ファイルアップロード要素作成 */ const divImagePartial = create_image_parts("image-partial", 3); image_area.appendChild(divImagePartial); // image_area (親要素) の末尾に div を追加 ----変更後 /* ファイルアップロード要素作成 */ const image_area = create_image_parts("image-partial", 3); ---- 変更前の3行目は関数へ引っ越しです。 もとの流れでもこの位置にあります。 ---- divImagePartial.appendChild(divImageCameraIcon); // uploadfile_area (親要素) の末尾に image_camera_icon を追加 } } } image_area.appendChild(divImagePartial); // image_area (親要素) の末尾に div を追加 return image_area; } ---- image_area を return します。
補足
Q.ひとつめの child 生成のみ const ではなく let にするのは何故でしょうか? A.回答ありがとうございます、再代入可能なように let にするということで理解致しました。 Q.回答画面では"STEP1 入力"や"STEP2 確認"を表示しないのでしょうか。 表示するのでしたらこの処理を活かすといいです。 表示しないのでしたら処理中のページが質問画面か回答画面かを引数を渡して、その引数で判定するといいと思います。 A.回答ありがとうございます、表示しない方向で考えております。 引数を渡して判断するという意味がよく分からないのですが、下記コードのようにそれぞれ違うコードを探してそれを比較するのでしょうか? const divImagePartial = create_image_parts("uploadfile-area", 0); const divImagePartial = create_image_parts("image-partial", 3); Q.このように共通部分に含まれていても関数が未定義の場合どうすればよいでしょうか? この場合は定義すれば解消されます。 ----変更前 /* ファイルアップロード要素作成 */ const divImagePartial = create_image_parts("image-partial", 3); image_area.appendChild(divImagePartial); // image_area (親要素) の末尾に div を追加 ----変更後 /* ファイルアップロード要素作成 */ const image_area = create_image_parts("image-partial", 3); ---- A.アドバイスありがとうございます、const divImagePartial を const image_area に変更するんですね勉強になりました。 実行したところ下記の部分でエラーが発生しております。 それぞれコードを考えてみたのですが、恐らく間違っていると思われます… アドバイスお願い致します。 ※ エラー文 ➀ ReferenceError: usericonImg is not defined at 質問回答画面/:405:95 ➁ ReferenceError: comment_area is not defined at 質問掲示板/:473:17 ※ 考えたコード ➀ const usericonImg = create_name_parts("answer-name-area", name_value, usericonImg); ➁ const comment_area.appendChild(divBodyPartialParts); ※ 最新コード(update4となっていますが正確には47になります間違えてプッシュしてしまいました申し訳ありません。) https://github.com/i6Grja3R/sample_theme.git
- dell_OK
- ベストアンサー率13% (766/5720)
・/* 確認画面送信ボタン要素作成 */ ではどこまでを response.js に書くべきか分からずお聞きしたいです。 この範囲がよさそうです。 ---- /* 確認画面送信ボタン要素作成 */ const divPostButton = document.createElement("div"); // div (子)を生成 divPostButton.classList.add("post-button"); // classの追加 child = document.createElement("button"); // button (孫)を生成 child.type = "button"; child.innerText = "入力画面へ戻る"; child.addEventListener("click", () => { change1(); input_area.style.display = "block"; // 空文字を入れることで要素内を空にできる confirm_area.textContent = ''; confirm_area.style.display = "none"; }); divPostButton.appendChild(child); // div (子要素) の末尾に child を追加 child = document.createElement("button"); // button (孫)を生成 child.type = "button"; //name属性の追加・変更 child.setAttribute("name", "output"); child.innerText = "結果画面へ進む"; child.addEventListener("click", confirm_button_click); divPostButton.appendChild(child); // div (子要素) の末尾に child を追加 ---- まったく同じではなさそうです。 change1(); をどうするか考える必要があります。 ひとつめの child 生成は const ではなく let にしてください。 let child = document.createElement("button"); // button (孫)を生成 ふたつめはそのままで前には何も書かないでください。
補足
A.回答ありがとうございます comment_area (親要素) の末尾に div を追加を目安にするんですね。 いくつか質問があるのですが、ひとつめの child 生成のみ const ではなく let にするのは何故でしょうか? change1(); をどうすればよいのか分からないのですが… アドバイスお願い致します。 回答No.21 のように修正したところ新たにエラーが発生しており、const image_area = document.createElement("div"); を response.js から消して bbs_quest_input.php と bbs_quest_input.php に書くべきか悩んでおります。 このように共通部分に含まれていても関数が未定義の場合どうすればよいでしょうか? ※ エラー文 ReferenceError: image_area is not defined at 質問回答画面/:400:17 ReferenceError: image_area is not defined at 質問掲示板/:470:17 ※ 最新コード https://github.com/i6Grja3R/sample_theme.git
- dell_OK
- ベストアンサー率13% (766/5720)
・回答画面のみエラーが表示されてしまいます。 質問画面も同じエラーが出ています。 出ていないとしたらキャッシュのせいかもしれませんね。 どちらの画面を見るときもキャッシュはクリアしてください。 と言うか、開発中は常にキャッシュをクリアするのが無難です。 エラーは未定義の変数 usericonIndex を使っているからです。 ---- const divImagePartial = create_image_parts("image-partial", usericonIndex); ---- これは関数側で受け取るための引数名 usericonIndex です。 関数を呼ぶ側は値を渡します。 質問画面(bbs_quest_input.php)では、 if (i == 3) { として動作させたいのですから 3 を引数として渡します。 const divImagePartial = create_image_parts("image-partial", 3); すると、 if (i == usericonIndex) { が、 if (i == 3) { として動作することになります。 回答画面は 0 を渡します。 const divImagePartial = create_image_parts("uploadfile-area", 0);
補足
A.回答ありがとうございます、Gogle拡張機能の clear cache を使っていたので正確ではなかったかもしれません、純正な方法でキャッシュクリアしてみます。 数字も引数として渡せるんですね勉強になりました覚えておきます。
- dell_OK
- ベストアンサー率13% (766/5720)
・➁ コードは全て同じなのですがどこからどこまでを response.js に書くべきかアドバイスお願い致します。 どの部分でしょうか。 全て同じで外部変数を使っていなければそのまま引っ越しでいいと思います。
補足
回答ありがとうございます。 ○○○.appendChild(); というコードを目安に dell_ok さんにアドバイス頂いたコードを元に考えていたのですが、/* 確認画面送信ボタン要素作成 */ ではどこまでを response.js に書くべきか分からずお聞きしたいです。
- dell_OK
- ベストアンサー率13% (766/5720)
・➀ i の値がそれぞれ異なるコードをどうまとめればよいでしょうか? 異なる部分を引数で渡すのが簡単です。 if (i == 3) { if (i == 0) { 3 と 0 が異なるのでここで引数を使います。 この数値はユーザーアイコンの画像ファイルの要素インデックスですからこんな名前で。 ---- function ~ (usericonIndex){ ~ if (i == usericonIndex) { ~ } ----
補足
アドバイスありがとうございます。 アップロードファイルについてまとめてみたのですが、回答画面のみエラーが表示されてしまいます。 原因は分かりますでしょうか? response.js に共通部分を書いてみたのですが間違えがあるかもしれません… 確認宜しくお願い致します。 ※ エラー文 ReferenceError: usericonIndex is not defined at 質問回答画面/:399:79 ※ 回答画面 https://www.irasuto.cfbx.jp/%e8%b3%aa%e5%95%8f%e5%9b%9e%e7%ad%94%e7%94%bb%e9%9d%a2/ ※ 最新コード https://github.com/i6Grja3R/sample_theme.git
- dell_OK
- ベストアンサー率13% (766/5720)
・const divBodyPartialParts = create_text_parts("answer-text-area", text_value); で宣言されているので原因が分かりません。 説明し忘れていました。 create_name_parts() では生成した divNamePartialParts を return しています。 同じように return してみてください。 ついでに child の生成に const を追加しておいてください。 ---- /* コメント要素作成 */ function create_text_parts(text_class, text_value) { const divBodyPartialParts = document.createElement("div"); // div (子)を生成 divBodyPartialParts.classList.add(text_class); // classの追加 const child = document.createElement("p"); // p (孫)を生成 child.appendChild(document.createTextNode(text_value)); //孫要素として Text ノードを生成 divBodyPartialParts.appendChild(child); // div (子要素) の末尾に child を追加 divBodyPartialParts.style.fontSize = "150%"; //コメントの文字のサイズ return divBodyPartialParts; } ---- 共通で使うわけではありませんが、 タイトルについても、 本体側のコードをすっきりさせる目的もあるので、 要素生成関数として引っ越しするといいと思います。
補足
Q.create_name_parts() では生成した divNamePartialParts を return しています。 同じように return してみてください。 ついでに child の生成に const を追加しておいてください。 共通で使うわけではありませんが、 タイトルについても、 本体側のコードをすっきりさせる目的もあるので、 要素生成関数として引っ越しするといいと思います。 A.回答ありがとうございます、最後に return するのを読み落としておりました申し訳ありません。 タイトルもまとめてみました確認お願い致します。 ※ 最新コード https://github.com/i6Grja3R/sample_theme.git bbs_que_answer.php のコメントを修正したところアイコン画像要素作成部分にエラーが出ていた為、child = document.createElement("p"); を追加したのですが問題ないでしょうか? ※ エラー文 TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'. at 質問回答画面/:458:29
回答受付中のQ&A
- Windows8.1/10(64bit版のみ)
報酬付き
Windows8.1/10(64bit版のみ)で 使用可能なゲームをしたいと思っております。 最近のWindowsのノート型パソコンでも 対応してますでしょうか?
- 回答数0
- 詳細ウインドウに表示されたファイルをクリック展開
報酬付き
今晩は。Windows10→11 Home 24H2、ウイルスバスター使用です。 エクスプローラーで詳細ウインドウにしています。 Windows10の時は、右側の詳細ウインドウ上で選択したファイル(選択したファイルのサムネイル?)をクリックしたらファイルが開きました。 Windows11にアップグレードしたら、右側の選択したファイルの画像をクリックしても開きません。 これを開く方法があるのでしたら解る人、教えて下さい。お願いします。
- 回答数0
- ネットワークの重複するIPアドレスについて
報酬付き
Windows11のデスクトップPCにESETから下記のメッセージが表示されます。 ネットで調べたところ、何らかの原因でIPアドレスが重複している可能性があるからルーターの電源をオフにすると良いと書かれていたので、ひとまず試してみました。 しかし、状況は改善しません。 相変わらず同じメッセージが表示されます。(重複しているIPアドレスの数字は変わりました) 他にわたしができる方法があったら教えて下さい。 ネットワークイベントがブロックされました ネットワークの重複するIPアドレス ネットワークのデバイス(xxx.xxx.xx.xx)が悪意のあるトラフィックを送信しています。これはコンピューターを攻撃する試みである可能性があります。 ESET Internet Security 18 Windows 11 Home 23H2
- 回答数1
- CSS 異なる行数がある表を作れますか?
報酬付き
CSS 異なる行数がある表を作れますか? CSS スキルアップのための問題を作りました。 [問題] HTMLとCSSで 添付図のようなテーブルを作ってください。 A,C列は5行、B,D列は4行のテーブルです。 作れたら「m行n列の表」という概念が変わるかも知れません。 <仕様> ・CSSだけで作成のこと (JS 不要) ・画像、Canvasを用いないこと ・使えるタグは TABLE関連のみ CSSのコードができたら回答してください。 腕試しをしたい方、ポイ活の方、 スキルアップを望む方の回答をお待ちしています。
- 回答数0
- AIはなぜ役に立たない?
報酬付き
よく「使いこなせないだけ」「科学者なんかは研究で使いこなしている」と言われますが、ここで言う役に立たないとは日常の事で。 例えば、Googleマップの駅をタップすると列車の向かう方面と何分後かは出るのですが、それでは乗る列車が分からないんです。 そこでAIが「あんたの家ここだよね。ならこっち方面の何時何分の列車があるよ。」と返してくれれば良いのですが、返してきません。なので一つづつ開けて確認しました笑 iPhoneだとそこは簡単ですが、翌日のダイヤが表示されないので、どっちもどっちです。 一方、求めていない所で「この機能はいかがですか?」など、おそらくGoogleの利益になる事は勧めてくる。
- 回答数3
- XTermの初期パスワード
報酬付き
chromeOS flexにsteamをインストールしようとlinux環境を作ってスチームのファイルをインストールしたのですが、インストールの続きをしようと起動しところXTermでパスワードを求められました。chromeOSのパスワードを入れてみましたがだめで、XTermでpasswdを実行してみましたがパスワードがわからないのでできず、どうすればいいのかわかりません。
- 回答数1
- APP開発のノーコードツールの切り替えについて
報酬付き
ノーコードツールを使いAPPを開発しようとしていますが、不明な点があります。 一旦開発済みのAPPをGoogle playやapple storeにコミットし、ある程度ユーザを蓄積できたとしたら、ノーコードツールを変えてあるいは全て自力で再開発する場合、新たに出来上がったAPPはAPPストアに同一と認識されますか? つまりノーコードツールを変えたら以前のユーザは台無しになりますか? 教えて頂いたら幸いです。
- 回答数1
- CSS 蚊取り線香のイメージを作る
報酬付き
CSS 蚊取り線香のイメージを作る CSS スキルアップのための問題を作りました。 [問題] 添付図のような図形を作ってください。 <仕様> ・CSSだけで作成のこと ・画像、Canvasを用いないこと ・一辺 400px四方の中に作成する ・線香立に刺す穴も作ること HTMLソースは以下のとおり (追加、変更無し) <div class="outer"> <div class="inner"></div> </div> CSSのコードができたら回答してください。 腕試しをしたい方、ポイ活の方、 スキルアップを望む方の回答をお待ちしています。
- 回答数1
- Norton360のVPNが使えない
報酬付き
こんにちは、お世話になっています。 Norton360のVPNが接続はできても サイトにアクセスできないのですが何故なのでしょうか? Windows11のOSを使っています。 ご教示宜しくお願いします。
- 回答数2
- AutoCAD Mechanicalについて
報酬付き
こんにちは。 AutoCAD Mechanicalについてご質問します。 このCADはAutoLISPを使用することが出来るのでしょうか。
- 回答数0
- CSS, JS 奥行がある描画のテクニック
報酬付き
CSS, JS 奥行がある描画のテクニック CSS, JavaScript スキルアップのための問題を作りました。 [問題] CSSで、地球と月に見立てた図形を表示させます。 JavaScriptで、赤色の月の軌跡、真円を描画します。 スライダーを動かすと月の軌跡を変えられるようにします。 その際、月の位置は追随します。 角度により、赤い奇跡の一部が地球の裏側になる場合があります。 <仕様> ・jQuery等のプラグインは用いない ・画像、Canvasを用いないこと ・必ず月は赤色の奇跡上にあること ・コンテナは青色で サイズは縦横とも 400px ・地球は緑色で サイズは直径 130px ・奇跡は赤色で 直径は 270px ・月は黄色で 直径は 26px HTMLソースは以下のとおり <div><!-- レンジスライダー --> 角度:<input type="range" id="slider" min="0" max="90" step="1" value="0"> <span>0</span> </div> <div class="container"> <div id="earth"></div> <div id="moon"></div> </div> CSS, JavaScriptのコードができたら回答してください。 腕試しをしたい方、ポイ活の方、 スキルアップを望む方の回答をお待ちしています。
- 回答数0
- LinuxのUbuntuの最新バージョンの安定性
報酬付き
現在、最新バージョンは、今年2024年4月に出てから半年ぐらい経過している<24.04>というバージョンのようですが、安定していますか? 一つ前の(22.04)の方が安心なのでしょうか? Ubuntuというものは、2年置きに新しいバージョン(5年間サポート)が出るようですが、最新バージョンが安定するまで、どのくらいかかるものなのですか?
- 回答数1
- VMwareでホストのWi-FiをOFFにしたい
報酬付き
お世話になります。 現在次のように使用しています。 VMware Workstation Player 16 ホスト:Windows10 Pro 22H2 ゲスト:Linux Mint 22 インターネット接続はWi-Fiを使用しています。 来年10月からはWindows10はWi-FiをOFFにして、 LinuxだけをONにして使用したいと思っています。 現状はWindows10の操作でWi-FiをOFFにするとLinuxもOFFになってしまいます。 LinuxだけでWi-FiをONにする方法を教えてください。 申し訳ありませんが、私はコマンドプロンプトを操作 したのはOS選択画面で表示文字を変更する時くらいです。 よろしくお願いします。
- 回答数1
- 権限がおかしくなった
報酬付き
WindowsServer2022が2台あります(サーバAとサーバBとします)。 どちらも管理者権限を設定したユーザを作成ししばらく使用していたのですが、いつからかサーバBのDドライブ直下やフォルダ内のテキストファイルが上書き禁止になっていたり右クリックの新規作成メニューにフォルダーしか表示されなくなっていました(以前はもちろんできていました)。 サーバAはDドライブ直下もフォルダ内も右クリックの新規作成にはフォルダー以外にショートカットやテキストドキュメントが表示されていて実際作成もできます。 両方のDドライブの状況をみるとadministratorsは特殊なアクセス許可を除き全てチェックされている状態で、所有権はSYSTEMとなっています。 サーバBはCドライブの自分のプロファイル内まで進むと新規作成メニューが普通に表示される状態になります。サーバAはCドライブ直下から新規作成メニューが正常に表示されます。 限りなく権限が不足している状態に見えるのですが、サーバAとBでユーザ権限はAdministratorsのみで違いはありません。 またサーバBは当該ユーザのプロファイルを削除して再作成していますが事象は解消していません。 他に確認すべき点やどのような操作をすればサーバAと同様の動きに戻るでしょうか?
- 回答数3
- CSS, JS 列3のスライドアニメーション
報酬付き
CSS, JavaScript 列3のスライドアニメーション スキルアップのための問題を作りました。 <仕様> ・チェックを入れたら「列3」が表から出て来る ・チェックを外したら「列3」が表の中へ隠れる ・画像、jQuery等のプラグインは用いない ・「列3」の表示・非表示はスライドアニメーション ・スライドアニメーションはCSS, JavaScriptのいずれでもOK! ・LABEL要素は使用しません ・CLASS名、ID名を付けるのは任意です HTMLソースは以下のとおり <input type="checkbox">列3を見る <div> <table> <thead> <tr> <th>列1</th> <th>列2</th> <th>列3</th> </tr> </thead> <tbody> <tr> <td>データ1-1</td> <td>データ1-2</td> <td>データ1-3</td> </tr> <tr> <td>データ2-1</td> <td>データ2-2</td> <td>データ2-3</td> </tr> </tbody> </table> </div> 腕試しをしたい方、 スキルアップを望む方の回答をお待ちしています。
- 回答数1
補足
Q.プロパティがないエラーだと思います。 原因は前回の私の回答に誤りがあったことに関係しています。 訂正します。 A.回答ありがとうございます。 修正してみたところ別のエラーが発生した為、原因を探しております… ※ エラー文 ReferenceError: usericonImg is not defined at create_image_parts (response.js?ver=6.6.2:95:13) at 質問回答画面/:400:36 Q.そこではありません。 回答No.23の後半「変更前の3行目は関数へ引っ越しです。」からをご覧ください。 関数の return の位置と内容、および、その直前の処理です。 A.回答ありがとうございます、申し訳ありませんご指摘いただいた内容を読んだところ理解出来ました。 ※ 最新コード https://github.com/i6Grja3R/sample_theme.git __________________________________ 確認画面送信ボタンの if 分岐コードが分からず調べて質問をしてみたのですが、想像全く違うコードになってしまうため困惑しております。 HTMLボタンにデータ属性を追加してボタンがクリックされた際に、そのdata-type属性を参照して条件分岐を行う方法があるようですが、質問画面用の処理と回答画面用の処理の両方を response.js に書くためコードがかなり長くなりそうです。 dell_ok さんに教えて頂いた引数を渡してそれぞれ違うコードを探してそれを比較するというのを完全に無視したコードになってしまうため悩んでおります… アドバイスお願い致します。 ※ アドバイス頂いたコード 1. HTMLボタンにデータ属性を追加 // 質問画面用ボタン child.setAttribute("data-type", "question"); // 回答画面用ボタン child.setAttribute("data-type", "answer"); 2. ボタンクリック時の処理 ボタンがクリックされた際に、data-type属性を参照して条件分岐を行います。(コードが長くなりそうです) child.addEventListener("click", () => { const buttonType = child.getAttribute("data-type"); if (buttonType === "question") { // 質問画面用の処理 handleQuestionSubmission(); } else if (buttonType === "answer") { // 回答画面用の処理 handleAnswerSubmission(); } }); 3. ファイルアップロードの引数による判定 引数から情報を取得してファイルアップロード関数内で引数を受け取り、その内容によって判定します。 function create_image_parts(image_class, usericonIndex, usericonImg, isQuestion) { if (isQuestion) { // 質問用の処理 } else { // 回答用の処理 } } 4. 呼び出し時に引数を渡す 質問画面または回答画面からこの関数を呼び出す際に、適切なフラグ(true または false)を渡します。 const image_area = create_image_parts("image-partial", 3, usericonImg, true); // 質問の場合 const image_area = create_image_parts("uploadfile-area", 0, usericonImg, false); // 回答の場合