这对我来说真的不是问题。我只想知道如何正确地做到这一点,而不是解决方法。好吧,如果我们使用for()
和一些延迟事件,则只考虑最后一个值。
测试:http: //jsfiddle.net/39dQV/
// Using only i (does not work)
for(var i=0; i<10; i++) {
setTimeout(function() {
test1.textContent = i;
}, i * 1000);
}
// Private scope to i (does not work either)
for(var i=0; i<10; i++) {
var x = i;
setTimeout(function() {
test2.textContent = x;
}, i * 1000);
}
// Callback scope (workaround)
function set_textContent(i) {
setTimeout(function() {
test3.textContent = i;
}, i * 1000);
};
for(var i=0; i<10; i++) {
set_textContent(i);
}
我需要做什么才能使其正常工作,即:考虑 的当前值i
,而不是按时间更改的最后一个值?