我正在尝试创建一些元素,然后将它们绑定到不同的方法,例如,
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); });
}
现在运行此代码后,我能够创建所有锚元素,因此警报应该打印创建锚标签的键,例如,如果我有 2 个键 key1 和 key2,那么锚标签是在parentElements[key1] & parentElements[key2],所以每当我点击一个锚标签时,我应该会收到 key1 或 key2 的警报,这取决于我点击了谁的锚标签。但问题是总是 key2 被警告。所以,我认为这里的问题可能是绑定延迟到执行单击,并且当它执行时,key alerted 的值将始终是最后一个键,即 key2。我不太确定这里的问题是什么,但由于它总是最后一个被警告的键,我的印象是绑定发生在最后,当两个循环都完成时。
那么我做错了什么,或者我应该以不同的方式做吗?任何帮助表示赞赏。(也许这个问题不是很容易解释,如果我应该用其他东西替换它,请告诉我)。