JavaScript オンクリック
世界只因有你
世界只因有你 2017-05-19 10:20:56
0
3
621

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

リーリー

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

リーリー

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

世界只因有你
世界只因有你

全員に返信(3)
漂亮男人

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

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

いいねを押す +0
世界只因有你

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

いいねを押す +0
PHPzhong

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート