JavaScript ループでのイベント ハンドラーの使用: 個別のイベント処理にクロージャを使用する
JavaScript では、HTML コードを使用するときにイベント ハンドラーが再生されます。ユーザーが Web ページと対話できるようにする上で重要な役割を果たします。ただし、これらのイベント ハンドラーがループ内で定義されている場合に共通の課題が発生し、予期しない動作が発生します。
この問題を説明するには、次のコード スニペットを考えてみましょう。
<code class="javascript">var blah = xmlres.getElementsByTagName('blah');
for(var i = 0; i < blah.length; i++) {
var td = document.createElement('td');
var select = document.createElement('select');
select.setAttribute("...", "...");
select.onchange = function() {
onStatusChanged(select, callid, anotherid);
};
td.appendChild(select);
}
ログイン後にコピー
When an onchange