javascript (jQuery を使用) を使用して順序付けられていないリストを生成しています。各リストアイテムは、「クリック」イベント用の独自のイベント リスナーを受け取る必要があります。しかし、正しいコールバックを正しいアイテムにアタッチするのに問題があります。(削除された) コード サンプルを使用すると、問題が少し解決する可能性があります。
for(class_id in classes) {
callback = function() { this.selectClass(class_id) };
li_item = jQuery('<li></li>')
.click(callback);
}
実際、このイテレーションではさらに多くのことが行われていますが、質問とはあまり関係がないと思いました。いずれにせよ、何が起こっているかというと、コールバック関数が保存(& コピー)ではなく参照されているように見えます。最終結果?ユーザーがリスト項目のいずれかをクリックすると、その特定のポイントに格納されている関数を使用するため、常に配列の最後のアクションが実行されます。 class_id
classes
callback
href
汚い回避策 (囲まれた要素内の属性を解析するなど) を見つけましa
たが、「クリーンな」方法で目標を達成する方法があるかどうか疑問に思っていました。私のアプローチが恐ろしい場合は、その理由を教えてください :-) ありがとう!