1. ホーム
  2. javascript

[解決済み] alert("Hi!") と function(){alert("Hi!")} の違い。重複] [重複] [重複] [重複] [重複] [重複

2022-02-15 01:04:07

質問

ボタンでインラインコマンドを行う場合。

<button id="myButton" onclick="alert('Hi!')"> 

なぜ

document.getElementById("myButton").onclick = alert('Hi!') 

が動作せず、ページが読み込まれたときにアラートが表示されるのですか?私はそれがどのように動作するのか理解できません function() が追加され、それに function() . 私の質問を理解してもらえるといいのですが。私はここで何かを見逃しています。

どのように解決するのですか?

document.getElementById("myButton").onclick = alert('Hi!')

は間違いです。onclick は関数呼び出しの結果そのものではなく、関数参照に割り当てられるべきものだからです。

を実行することになります。 alert('Hi!') というのは、ページが読み込まれたときですが、ここでの意図はそうではありませんよね?onclickハンドラを割り当てる意図は、ボタンがクリックされたときにこのアラートが実行されることを保証することです。

そのためには、そうでなければならない。

document.getElementById("myButton").onclick = function(){alert('Hi!')};

また、これは window.onload イベントを使用します。

window.onload = function(){
    document.getElementById("myButton").onclick = function(){alert('Hi!')};
};