検索

ホームページ  >  に質問  >  本文

JavaScript オンクリック

今日 JS を書いているときにこのような問題に遭遇しました:

リーリー

上記は私の JS コード部分です。ここで、init 関数の 2 番目の文、btn.onclick = btnHandle();
私の当初の意図はボタンをクリックして btnHandle 関数を実行することですが、実際の状況では、ページを更新した後、btnHandle 関数が直接実行されます。
次に、コードをこれに変更しました

リーリー

btn.onclick = btnHandle(); ステートメントの () を削除すると、コードは思ったとおりに正常に実行されます。 ###何故ですか? btnHandle と btnHandle()

世界只因有你世界只因有你2869日前654

全員に返信(3)返信します

  • 漂亮男人

    漂亮男人2017-05-19 10:22:56

    btn.onclick接受一个函数,代表当 btn 被点击的时候执行这个函数,而你的btnHandle()代表了执行这个函数,给 btn.onclickはその戻り値で、もちろん最初に実行されます。

    以下の書き方は、btn.onclick 时,执行 btnHandleが関数の場合を意味します。

    返事
    0
  • 世界只因有你

    世界只因有你2017-05-19 10:22:56

    btn.onclick = btnHandle(); このコードは、実行結果をクリックイベントに割り当てることを意味します

    返事
    0
  • PHPz

    PHPz2017-05-19 10:22:56

    これは、init 関数の実行後、onclick がバインドされている場合、このコード行 btn.onclick = btnHandle();
    は btnHandle メソッドの実行と同等であることを意味します。メソッドの戻り値を btn に代入します。
    そして btn.onclick = btnHandle;
    は btn.onclick = function(){xxxxx}; と同等です
    つまり、 btnHandle 変数の参照は btn.onclick に割り当てられます
    したがって、クリック イベントがトリガーされると、 btnHandle 代表の Function メソッドが実行されます

    返事
    0
  • キャンセル返事