2017-07-25 18 views
-1

イベントハンドラのベストプラクティスは何ですか?私は、ボタンをクリックしてイベントが発生するのを待つか、jQueryのようにボタンをクリックする必要があるかどうかを確かめています。JavaScriptによるイベント処理のベストプラクティス

$('.buttonOK').on('click', function(){ 
    alert('ok'); 
}); 

をそれともボタン私が好むはずですjavascript:ButtonAction().

に追加します。

通常は、これを行うことができますか?

+2

[ベストプラクティスのゾンビ](http://meta.stackexchange.com/a/142354/1228) – Will

+0

マークアップ良いですが、中にはないことを願っています追加しますそれは個人的な意見です。 – epascarello

答えて

1

短い回答:間違いなく最初の方法です。イベントデリゲートはパフォーマンスは向上しますが、コードに余分な条件を必要とするため、基本的に複雑さとパフォーマンスのトレードオフです。

長い回答:少数の要素では、個々のイベントハンドラを追加すると問題なく動作します。しかし、イベントハンドラを追加するにつれて、ブラウザのパフォーマンスは低下し始めます。その理由は、イベントをリッスンすることはメモリを大量に消費するためです。

+0

だから私は、ボタンをクリックするなどのユーザーからのHTMLアクションを待つ必要があり、私は関数を使用するか、関数をトリガーするボタンを定義する必要がありますか? – asgasg

+0

はい@asgasg。それは良いことです。 –

0

私も新しいですが、私は良い練習が "機能プログラミング"であることを発見しました。 これはあなたの関数を宣言し、それを呼び出すことを意味します。これは、イベントが発生するような複数のイベントがある場合などに役立ちます。

function ok() { 
      consol.log("ok"); //consol log is much less annoying for debugging 
     } 

     $(".buttonOK, .btnOK").click(ok); // calls function on class button ok or btnOK 
     $(document).keyup(function(e) {if (e.which === 13) {ok();}}); //callsfunction on enter 

私はこのことができます:)

+0

こんにちは、ありがとう、私は非常にプログラミングではなく、javascriptで私はちょうどベストプラクティスのこの点を取得したいのですが、大きなスケールのプラットフォームCMSでスクリプトを遅らせることはありません知っている。 – asgasg

関連する問題