いくつかの要素を作成してから、それらをさまざまなメソッドにバインドしようとしています。
for( key in object ){
var vals = someMap[key];
var element = jQuery(parentElements[key]).find('.someClass');
var markup;
for( someKey in vals ){
markup += "<a href='#' >" + vals[someKey] + "</a>";
}
jQuery(element).empty().html(markup);
jQuery(element).find('a').bind('click', function(element){ alert(key); });
}
このコードを実行した後、すべてのアンカー要素を作成できるようになりました。アラートは、アンカータグが作成されたキーを出力する必要があります。たとえば、key1とkey2の2つのキーがある場合、アンカータグは内部に作成されます。 parentElements[key1]とparentElements[key2]なので、アンカータグをクリックするたびに、クリックしたアンカータグに応じて、key1またはkey2のいずれかでアラートが表示されるはずです。ただし、問題は常にkey2にアラートが送信されることです。したがって、ここでの問題は、クリックが実行されるまでバインディングが遅延することである可能性があり、実行されると、アラートされたキーの値は常に最後のキー、つまりkey2になると思います。ここでの問題が何であるかはよくわかりませんが、常に最後のキーがアラートされているため、両方のループが完了した最後にバインディングが発生しているように見えます。
それで、私が間違っていることはありますか、それとも別の方法でそれを行う必要がありますか?どんな助けでもありがたいです(多分質問はあまり説明的ではありません、私がそれを何か他のものと取り替えるべきである場合に備えて私に知らせてください)。