繁体   English   中英

为什么我的函数不能使用参数?

[英]Why won't my function work with parameters?

我正在尝试为 Web 项目制作打字机效果,我尝试制作自己的有参数的效果,但由于某种原因它不起作用。 找了别人的打字机,试着编辑一下,更好理解,但是用参数不行

我曾尝试以无关紧要的小方式编辑函数,但最终都失败了。

//The Working Function
var i = 0;
var txt = "Old McDonald Had a farm";
var speed = 50;

function typeWriter() {
  if (i < txt.length) {
    document.getElementById("demo").innerHTML += txt.charAt(i);
    i++;
    setTimeout(typeWriter, speed);
  }
}
typeWriter();




// The edited function that failed
var i = 0;
var text = "Old McDonald Had a farm";
var spe = 50;

function typeWriter(txt, spe) {
  if (i < txt.length) {
    document.getElementById("demo").innerHTML += txt.charAt(i);
    i++;
    setTimeout(typeWriter, speed);
  }
}
typeWriter(text, spe);

编辑后的代码只输出第一个字符而不是停止,我希望它完成所有这些。 我的网络文本编辑器不喜欢 jQuery,因此查找实际错误很复杂

我假设您打算将函数签名更改为typewriter(txt, speed) ,这将解决我在评论中提出的问题。

第二个问题是当您第二次调用该函数时,您没有将任何参数传递给该函数。 这意味着txt undefined & txt.length导致错误。

下面可以让您使用setTimeout将参数传递给函数:

function typeWriter(txt, speed) {
    if (i < txt.length) {
        document.getElementById("demo").innerHTML += txt.charAt(i);
        i++;
        setTimeout(function() { typeWriter(txt, speed); }, speed);
    }
}

第二个参数不对,把函数typeWriter(txt, spe)改成函数typeWriter(txt, speed)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM