我在jQuery上做了以下程序:
$(document).ready(function(){
var k = 0;
setTimeout(function(){alert("Hello")},500);
for (var i = 0; i < 5000; ++i) {
++k;
$('.inner').append('<p>Test</p>' + k.toString());
}
});我预计计时器事件将在循环执行期间执行警告"Hello“字符串的函数。然而,它只在循环结束后发生。
是不是语言特定的问题?在某些循环/执行中,我应该如何实现回调函数处理?
发布于 2013-05-26 16:45:20
是的,这是一个语言问题。JavaScript中的setTimeout在指定的毫秒数后执行代码,在本例中为500。它将脚本排入队列,然后继续执行下一行代码,因此执行您的循环,而线程将等待500ms来执行您的警报。
如果希望for循环在500毫秒后运行,请执行以下操作
setTimeout(function(){
for (var i = 0; i < 5000; ++i) {
++k;
$('.inner').append('<p>Test</p>' + k.toString());
}
},500);https://stackoverflow.com/questions/16757538
复制相似问题