私は主にモバイルユーザー(約80%のユーザー)が使用するWebページを持っており、約350 <input type="checkbox">
の要素があります。チェックボックスをオンまたはオフにすると、javascriptを呼び出してローカルストレージに状態を保存する必要があります。何百ものチェックボックスにonclick()を追加する最も軽い方法は何ですか?
var input_elements = document.querySelectorAll("input[type='checkbox']");
for (var i = 0; i < input_elements.length; i++) {
input_elements[i].addEventListener("click", function() { save(this); });
}
素晴らしい作品:私は私のページを作成した場合のみ、約100の要素ので、代わりのタイプミスを起こしやすいか、単なるonclick
を追加し忘れ見えた各要素<input type="checkbox" onclick="save();">
が、私は私のonload
機能にこれを追加することがありました要素を追加するにつれて悪化しているページの読み込み時間に小さなペナルティが追加されています。毎年別の要素を100〜150個増やし続けることを期待しています。
ロード時間を短縮し(特にブラウザの速度が遅いモバイルユーザーの場合)、ユーザーのために何かを壊してしまいますが、私にとっては難しい誤ったタイプミスを防止するという点で、より良い方法ですスポット?
- イベントの委任メカニズムを使用 –
小さな最適化は名前付き関数を持ち、それをハンドラとして使用することができます。 '.addEventListener(" click "、myHandler)'。これは、最初の引数をイベントとコンテキストとして要素 – Rajesh
@ Maximusのように動作します。ありがとうございました、その検索用語は私が必要としていたものでした。そのコメントを回答に貼り付けて受け入れることができますか? – drewbenn