• 下記のhtmlファイル内にJSコードを書いてVSエディタのliveserverで開くと、clickもしないのに、まずalert関数が走り、OKボタンを押すと、表の空欄であるべき場所に、値が入った状態で表示されます。
    なぜでしょうか?ご教示いただければ幸いです。

    <table style="width: 100%;" border="1">
    <tr>
    <td>プロセス</td>
    <td>機関名をクリック</td>
    <td>借方</td>
    <td>貸方</td>
    </tr>
    <tr>
    <td>①民間銀行が国債購入資金を日本銀行から借りる=日本銀行による</td>
    <td id="id1"> 民間銀行</td>
    <td id="id1_1"></td>
    <td id="id1_2"></td>
    </tr>
    </table>
    <script>
    document.getElementById('id1').addEventListener('click', func_1());
    function func_1() {
    alert(
    "民間銀行の借方に資産として『日銀当座預金 100』を記入、\n貸方に負債として『日銀から借入 100』と記入"
    );
    let e1 = document.getElementById("id1_1");
    e1.innerText = "日銀当座預金 100";
    let e2 = document.getElementById("id1_2");
    e2.innerText = "日銀から借り入れ 100";
    }
    </script>
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック投稿者 jinchan2383

    (@jinchan2383)

    【追伸】記述誤りがありました。正しくは、下記の通りです。すみませんでした。

    下記のhtmlファイル内にJSコードを書いてWordPressの投稿記事にアップして、ページを開くと、clickもしていないのに、まずalert関数が走り、OKボタンを押すと、表の空欄であるべき場所に、値が入った状態で表示されます。
    なぜでしょうか?ご教示いただければ幸いです。

    こんにちは。WordPressとは直接関係のないご質問のように見えますが、お答えします。

    原因は、addEventListerの第二引数に関数の実行結果そのものを渡しているからです。

    document.getElementById('id1').addEventListener('click', func_1());

    document.getElementById('id1').addEventListener('click', func_1);

    に変更すれば大丈夫だと思います。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • このトピックに返信するにはログインが必要です。