Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从文本文件看打字机_Javascript_Timeout - Fatal编程技术网

Javascript 从文本文件看打字机

Javascript 从文本文件看打字机,javascript,timeout,Javascript,Timeout,我是一个真正的Javascript新手,第一次尝试为页面编写而不是复制代码。简单地说,我希望读取一个文本文件,然后在已经创建的div中一次显示一个字符。“get”很好,数据变量接收字符串,但是,当执行该命令时,我从浏览器中获得了一个“Line 1”输入错误。我的做法可能有10个问题,但欢迎任何方向 enter code here <div id='textelement' style="width:400px; height:200px ;overflow:auto"></d

我是一个真正的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需要使用函数{}的奇怪语法来传递参数。为什么会这样

下面的代码现在适用于我

格雷格


非常感谢。这将清除解析错误。有没有想过为什么代码仍然没有运行?
<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>