逐行显示js问题

<html>
<head>
<title>逐行显示文字</title>
<script src="http://libs.useso.com/js/jquery/1.8.3/jquery.min.js"></script>
<script language="javascript">
<!--
i   = 0;
str = "";
function type(content,id,time){
    var strArr  = content.toString();
    var getArr = strArr.split(",");
    var txtid = id;
    str += getArr[i] + "<br>";
    //alert(str);
    txtid.innerHTML = str;
    i++;
    if (i<getArr.length){
    setTimeout(type(getArr,txtid,time),time);
    }
}
//-->
$(document).ready(function(){
var text = new Array("第一行文字!","第二行文字!","第三行文字!","第四行文字!");
//alert(text);
type(text,txt,20000);
});
</script>
</head>
<body>
<div id="txt"></div>
</body>
</html>

想搞一个类似于歌词的逐行显示的,但是貌似 setTimeout 无效啊··求破

阅读 4.7k
1 个回答

setTimeout(type, time);

setTimeout 的第一个参数传递的是一个函数,而不是函数的返回值。

测试

var i   = 0;
var str = "";
var time = 1000;
var text = ["第一行文字!","第二行文字!","第三行文字!","第四行文字!"];

function type(id) {
    str += text[i++] + "<br>";
    console.log(str);
    if (i < text.length) {
        t = setTimeout(type, time);
    }
}

type("txt");
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题