首页 > 逐行显示js问题

逐行显示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 无效啊··求破


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");
【热门文章】
【热门文章】