Javascript 关于为回路设置超时/延迟的问题
请告诉我如何设置以下代码的超时/延迟:Javascript 关于为回路设置超时/延迟的问题,javascript,jquery,Javascript,Jquery,请告诉我如何设置以下代码的超时/延迟: $(function() { var alpha = Array("a","b","c","d","e","f","g","h","i","j","k","l","m","z"); for ( var i = 0; i < alpha.length; i++ ) { $("#box").html(alpha[i].toUpperCase()); } }); $(函数(){ var alpha=数组(“a”、“b”、“c”、“
$(function() {
var alpha = Array("a","b","c","d","e","f","g","h","i","j","k","l","m","z");
for ( var i = 0; i < alpha.length; i++ ) {
$("#box").html(alpha[i].toUpperCase());
}
});
$(函数(){
var alpha=数组(“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”、“z”);
对于(变量i=0;i
谢谢您可以递归调用
window.setTimeout
或使用window.setInterval
它们都接受将基于计时器(毫秒数)调用的回调方法
以下是一个例子:
window.setTimeout(function() {
// ... do your work ...
}, 1000 );
您可以找到。这里有一种方法:
$.each(alpha, function (_, letter) {
$("#box").delay(500).queue(function (next) {
$(this).html(letter.toUpperCase());
next();
});
});
演示:这里有一个工作代码供您使用,只需使用setTimeout
$(function() {
var alapha = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
$.each(alapha, function (index, letter) {
setTimeout(function(){ $("#box").html(letter.toUpperCase())}, index * 100);
});
});
您可以从100更改为另一个值。。这是..您可能会得到最好的服务
窗口。(func,delay[,param1,param2,…])
重复调用函数[…],每次调用该函数之间有固定的时间延迟。返回一个区间有效的
$(函数(){
//对字母大小写转换进行预处理
var alpha=“abcdefghijklmnopqrstuvxyz”。拆分(“”);
//缓存jQuery对象,这样我们就不会重新创建它26次
变量$box=$(“#box”);
//索引
var i=0;
//开始一个间隔并存储id
var intervalID=setInterval(函数(){
//设置元素文本
$box.text(alpha[i++]);
//在我们处理了26封信后停止间隔
i>25&&ClearIntervalid;
}, 100);
});代码>
谢谢elclanrs,只是想知道是否有一种方法可以使用for循环完成此操作?!可以,但这比for
循环要好。jQuery有您所需要的一切,所以您不必使用循环。@关于这个示例,我需要注意以下几点:1.:each()
和queue()
都用于引擎盖下的循环。2.:delay()
使用setTimeout()
。3:本例为#box
创建52个jQuery对象。您应该考虑缓存jQuery对象以防止这种情况发生。