Это из-за clousres / переменная область видимости, ваш tmpItem.m_sId
var получит только свое последнее значение. Но если вы делаете:
$("#edit_"+tmpItem.m_sId).bind('click', function(){
alert($(this).attr("id"));
});
вы обязательно получите другие результаты.
РЕДАКТИРОВАТЬ На всякий случай, если вам нужно получить доступ к вашему tmpItem внутри события click, вы можете использовать .data
как это:
for(var i = 0; i<aLotOfItems.length; i++){
var tmpItem = aLotOfItems[i];
//this will generate a <a> for me to handle the event
tmpItem.toHTMLElement().prependTo($("#main"));
//bind the click event
$("#edit_"+tmpItem.m_sId).data("tmpItem", tmpItem).bind('click', function(){
var tmpItem = $(this).data("tmpItem");
alert(tmpItem.m_sId);
});
}
Надеюсь, это поможет. Приветствия.