我寫了JS函數,它必須綁定它生成的按鈕,這取決於數組中的值。 但它給了我最後的價值。我讀到我必須使用閉包,我做了,而且我仍然無法將它們綁定到正確的位置! 我還是一個初學者 我瞭解封,給我的想法,但仍然不知道我失蹤不能使用Closure權利
function addNewServices(newServicesArray){
var j=0; var x;
for (i in newServicesArray){
var html='';
html='<div style="width: 33%; float: leftt"><a href="#" data-role="button" data-icon="home" id="btn-'+newServicesArray[j].servicename+'" value="'+newServicesArray[j].servicename+'" class="ui-btn-up-c">'+newServicesArray[j].servicename+'</a></div>';
$("#main-menu").append(html);
$('#btn-'+newServicesArray[j].servicename).bind('click', function(){bindThis(j)});
j++;
}
var bindThis = function(j) {
return function() {
alert(j); // gives 2 always
alert(newServicesArray[j].servicename);
};
};
}
使用jQuery的'$ .each'迭代,您可以更輕鬆...... – elclanrs 2013-02-20 09:09:01
你不應該申報'bindThis'內循環。爲什麼你聲明x並且從不使用它? – fragmentedreality 2013-02-20 09:16:10
@fragmentedreality實際上,bindThis在循環內部是* not *聲明的。 – Christoph 2013-02-20 09:28:42