我是一个真正的Javascript新手,第一次尝试为页面编写(而不是复制)代码。简单地说,我希望读取一个文本文件,然后在已经创建的div中一次显示一个字符。"get"很好,数据变量接收字符串,但是,当它执行时,我从浏览器中得到了一个"Line 1"输入过去的错误。我的做法可能有10点错误,但欢迎任何方向。
enter code here
<div id='textelement' style="width:400px; height:200px ;overflow:auto"></div>
<script type="text/javascript">
$.get("Comments.txt", function (data)
{
var displaytxt = "";
displaytxt = data;
function nextchar ()
{
if (displaytxt.length > 0)
{
$('#textelement').append(displaytxt.substr(0, 1));
displaytxt = displaytxt.substr(1);
setTimeout(nextchar, 70);
}
}
}
</script>
首先,您没有正确地转义函数。
<script type="text/javascript">
$.get("Comments.txt", function (data)
{
var displaytxt = "";
displaytxt = data;
function nextchar ()
{
if (displaytxt.length > 0)
{
$('#textelement').append(displaytxt.substr(0, 1));
displaytxt = displaytxt.substr(1);
setTimeout(nextchar, 70);
}
}
}).fail(function (xhr, status, error) {
alert(error);
});
</script>
看了一会儿之后,我发现:1.我从未调用过我的函数"nextchar",因此它从未运行过。我真傻。2.setTimeout需要使用function(){}的奇怪语法才能传递参数。为什么会这样?
下面的代码现在对我有效。
greg
<script type="text/javascript">
function nextchar(displaytxt) {
if (displaytxt.length > 0) {
$('#textelement').append(displaytxt.substring(0, 1));
displaytxt = displaytxt.substr(1);
setTimeout(function () { nextchar(displaytxt); }, 70);
}
}
$.get("PatientComments.txt", function (data) {
var displaytxt = "";
displaytxt = data;
alert(displaytxt);
nextchar(displaytxt);
}).fail(function (xhr, status, error) {
alert(error);
});
</script>