\n\n```\n\n4.5のコードについてヒントを頂戴できないでしょうか。どうぞよろしくお願いいたします!","answerCount":2,"upvoteCount":0,"datePublished":"2022-02-12T02:34:54.082Z","dateModified":"2022-02-12T16:12:05.000Z","suggestedAnswer":[{"@type":"Answer","text":"> 4. 5秒後にリンク先に飛ぶ →ボタンを押さずともHTML表示後5秒で飛んでしまう(link1)\n\nsetTimeoutが外側にあるので、読み込んだ時に実行されます。\nボタンクリック時に遅らせて実行させたい場合は、link1()の中に setTimeout を記述する必要があります。\n\n```js\nfunction link1() {\n setTimeout (\n function link1() {\n window.location.href='complete.html';\n }\n ,5*1000);\n}\n```\n関数が入れ子になって読みにくいので、下記のように記述することが多いです\n```js\nconst link = function() {\n window.location.href='complete.html';\n}\nconst link1 = function(){\n setTimeout(link, 5000);\n}\n```\n\n> 5. 画像を表示する →表示しない(prtsc1)\n\nimgタグで画像は読み込んでおいて、CSSで非表示(display: none)にしておいて、\nクリック時に表示させるというのが普通のやり方かと。\n\n```html\n\n```\n```js\nfunction prtsc1() {\n document.getElementById('img').style.display =\"block\";\n}\n```\n","dateModified":"2022-02-12T07:12:05.325Z","datePublished":"2022-02-12T07:12:05.325Z","upvoteCount":0,"url":"https://teratail.com/questions/g6kayxs6q0d6op#reply-ehaise7kwwkgmh","comment":[]},{"@type":"Answer","text":"4について、\n[WindowOrWorkerGlobalScope.setTimeout() - Web API | MDN](https://developer.mozilla.org/ja/docs/Web/API/setTimeout)\nsetTimeout()にて与える関数の実行を指定ミリ秒遅らせて実行します。\n\n5について、\n非表示ではなくHTML要素を削除するという意味でしたら、\n[Node.removeChild - Web API | MDN](https://developer.mozilla.org/ja/docs/Web/API/Node/removeChild)\nremoveChild()を使います。\nよくやる手として、\n```JavaScript\n// 親要素が不明、不定の場合の方法\nvar node = document.getElementById(\"nested\");\nif (node.parentNode) {\n node.parentNode.removeChild(node);\n}\n```\n削除対象の要素を見つけて、その親要素を見つけて、親要素に対して削除対象を削除させるという流れです。","dateModified":"2022-02-12T03:00:27.676Z","datePublished":"2022-02-12T03:00:27.676Z","upvoteCount":0,"url":"https://teratail.com/questions/g6kayxs6q0d6op#reply-ujfo0ao76e6l4x","comment":[]}],"breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https://teratail.com","name":"トップ"}},{"@type":"ListItem","position":2,"item":{"@id":"https://teratail.com/tags/onclick","name":"onclickに関する質問"}},{"@type":"ListItem","position":3,"item":{"@id":"https://teratail.com/questions/g6kayxs6q0d6op","name":"超初心者…[JavaScript」onClickで複数のイベントを発生させる"}}]}}}
質問するログイン新規登録

Q&A

2回答

1383閲覧

超初心者…[JavaScript」onClickで複数のイベントを発生させる

00rami

総合スコア0

onclick

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

button

HTMLで用いる<button>タグです。

JavaScript

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

0グッド

0クリップ

投稿2022/02/12 02:34

0

0

閲覧いただきありがとうございます。
独学でHTMLとJavaScriptを勉強しだしました!
何を参考とすればいいか、わからなくなり思い切って博識の皆様のお力をお借りしたく質問です。

やりたいこと

ボタンクリックで4つのイベントを起こす。
1.読み込みバーを表示 →OK(proc1)
2. テキスト表示 →OK(text1)
3. 音を鳴らす→OK
(audio1)
4. 5秒後にリンク先に飛ぶ →ボタンを押さずともHTML表示後5秒で飛んでしまう(link1)
5. 画像を表示する →表示しない(prtsc1)

ヘディングのテキスト

<button onclick="proc1(); text1(); audio1(); link1(); prtsc1();" id=btn1>もっと詳しく</button> <audio id="audio"> <source src="audio/audio.wav" type="audio/wav"> </audio> <script> function proc1() { if(document.getElementById('p1').value <100){ document.getElementById('p1').value++; setTimeout(proc1, 30); } } function text1() { if(document.getElementById('label').innerHTML = "お待ちください…"); } function audio1() { if(document.getElementById('audio').play()); } _   //リンク表示 _ setTimeout (function link1() { window.location.href='complete.html'; },5*1000); _ //画像表示 _ function prtsc1() { if(document.getElementById('img').innerHTML); } </script>

4.5のコードについてヒントを頂戴できないでしょうか。どうぞよろしくお願いいたします!

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

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

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

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

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

guest

回答2

0

4. 5秒後にリンク先に飛ぶ →ボタンを押さずともHTML表示後5秒で飛んでしまう(link1)

setTimeoutが外側にあるので、読み込んだ時に実行されます。
ボタンクリック時に遅らせて実行させたい場合は、link1()の中に setTimeout を記述する必要があります。

js

1function link1() { 2 setTimeout ( 3 function link1() { 4 window.location.href='complete.html'; 5 } 6 ,5*1000); 7}

関数が入れ子になって読みにくいので、下記のように記述することが多いです

js

1const link = function() { 2 window.location.href='complete.html'; 3} 4const link1 = function(){ 5 setTimeout(link, 5000); 6}

5. 画像を表示する →表示しない(prtsc1)

imgタグで画像は読み込んでおいて、CSSで非表示(display: none)にしておいて、
クリック時に表示させるというのが普通のやり方かと。

html

1<img src="img\img.jpg" id="img" style="display:none">

js

1function prtsc1() { 2 document.getElementById('img').style.display ="block"; 3}

投稿2022/02/12 07:12

hatena19

総合スコア34367

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

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

0

4について、
WindowOrWorkerGlobalScope.setTimeout() - Web API | MDN
setTimeout()にて与える関数の実行を指定ミリ秒遅らせて実行します。

5について、
非表示ではなくHTML要素を削除するという意味でしたら、
Node.removeChild - Web API | MDN
removeChild()を使います。
よくやる手として、

JavaScript

1// 親要素が不明、不定の場合の方法 2var node = document.getElementById("nested"); 3if (node.parentNode) { 4 node.parentNode.removeChild(node); 5}

削除対象の要素を見つけて、その親要素を見つけて、親要素に対して削除対象を削除させるという流れです。

投稿2022/02/12 03:00

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.29%

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

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

質問する

関連した質問