2017-10-12 16 views
0

「Hello Worldの」が最初に表示され、自動的に開始されます。ボタンをクリックした後にのみ表示したい。私はボタンにインラインイベントリスナーを追加することでこれを行うことができます。これらすべてをスクリプトでコーディングすることはできますか?なぜ私のonclickイベントは、ページがロードされるときに

 <button id="demo1">Click Me</button> 

     <p id="demo"></p> 

     <script> document.getElementById('demo1').onclick = myFunction(); 
      function myFunction() { 
      document.getElementById("demo").innerHTML = "Hello World"; } 
     </script> 

答えて

5

あなたはすぐにあなたがしている場合はonclickの

document.getElementById('demo1').onclick = myFunction();

document.getElementById('demo1').onclick = myFunction;

+0

でなければなりませんし(未定義である)のMyFunctionを呼び出して、戻り値を代入していますこれまでイベントリスニングのこのスタイルを使用していて、関数に複数の引数を渡す必要がある場合、 'Element.onclick = functio N(evenObjectIsPassedHere){myFunction.call(この、ARG1、ARG2、ARG3)。 } 'あなたはそれをどうやって行うのですか?もちろん、イベントオブジェクトを内部関数に渡すこともできます。 'call'を使って' this'コンテキストを要素にバインドできるようにしています。そして、 'myFunction'は' this.style.color = 'green'; 'のようなものを持つことができます。また、出力要素のコンテキストで 'call() 'することもできます。 – PHPglue

関連する問題