我有这个代码:
var newTR = '<tr class=".small"></tr>';
var i=300, v=0;
for (var product in products){
i=i+300;
v++;
var newTD+v =
'<td>'+'img'+'</td>'+
'<td>'+products[product].partNumber + ' ' + products[product].description+'</td>'+
'<td class="productPrice">' + toDollars(products[product].price) + '</td>'+
'<td class="productQty">'+products[product].qty+'</td>'+
'<td>'+ products[product].price * products[product].qty+'</td>'+
'<td><button class="removeProductClass">x</button></td>';
$(newTR)
.delay(i)
.insertAfter(self.cartTableHeader)
.switchClass( "small", "big", 500, "easeInOutQuad")
.queue(function(){
$(this).append(newTD)
.children()
.hide()
.fadeTo(1000, 1);
$(this).dequeue();
})
.queue(function(){
self.calcSubTotal();
$(this).dequeue();
});
}
}
问题是我最终得到了 newTD 变量的相同值,因为闭包使用的是在 newTD 上设置的最后一个值,因为动画稍后发生,当 for 循环已经完成时..
如何克服这一点?:(
谢谢阅读,
肖恩。