[英]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.