私はforループをjavascriptで実行しています。このループでは、リストアイテムを作成してクリックイベントをバインドします。このリストアイテムをクリックすると、現在のループオブジェクトのデータをパラメータとして関数を呼び出すことができます。バインドされたクリックイベントのJavascriptループは常に最終結果を返します
問題は、どのリスト項目をクリックしても問題ではありません。パラメータとして渡されるデータは、クリックされている現在のループではなく、ループしているオブジェクトの最後の要素です。
for(e in data) {
var suggestItem = $('<li>'+ data[e]['name'] +'</li>');
suggestItem.click(function() {
$(this).addClass('activeSuggestion');
suggestSelect(suggestField, data[e]);
});
suggestList.append(suggestItem);
}
私はこれがなぜ起こるのか分かりませんが、どうすればそれを処理すべきか分かります。
ループ内で作成された[jQueryイベントハンドラ]の複製が可能です(http://stackoverflow.com/questions/7774636/jquery-event-handler-created-in-loop) – Pointy