Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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 - Fatal编程技术网

Javascript 即使在';这叫什么

Javascript 即使在';这叫什么,javascript,Javascript,我正在写一个网站,它的一部分需要一些文本来显示,好像它正在被键入。但是,我的一个函数(typewriter2)不起作用,即使它被调用了 我已经尝试过在代码中移动,并单独测试它。代码运行正常,但是typewriter2函数无法启动 var x=document.getElementById(“名片”); 如果(x.style.display==“无”){ x、 style.display=“block”; }否则{ x、 style.display=“无”; } var i=0; var txt

我正在写一个网站,它的一部分需要一些文本来显示,好像它正在被键入。但是,我的一个函数(
typewriter2
)不起作用,即使它被调用了

我已经尝试过在代码中移动,并单独测试它。代码运行正常,但是
typewriter2
函数无法启动

var x=document.getElementById(“名片”);
如果(x.style.display==“无”){
x、 style.display=“block”;
}否则{
x、 style.display=“无”;
}
var i=0;
var txt1=“cd信息和cat名片”;
无功转速=75;
功能打字机(){
if(i
/*未访问的链接*/
a:链接{
颜色:白色;
}
/*访问链接*/
a:参观了{
颜色:白色;
}
/*鼠标悬停链接*/
a:悬停{
颜色:蓝色;
}
/*选定链接*/
a:主动的{
颜色:蓝色;
}
身体{
背景色:#300A24;
颜色:白色;
字体系列:“Ubuntu Mono”,monospace;
}

[dmeskin@code-u、 org~]$

Daniel Notmylastname
NotmySchool的学生
系统管理员




[dmeskin@code-u、 org Info]$

问题是
i
未设置为正确的值,必须重命名。

使用全局变量会对您造成伤害。这会使代码变得不可预测,尤其是在多个函数中使用同一变量时

另一件事:不要每次需要元素时都查询DOM:查询DOM很昂贵,如果可能的话应该避免(在您的代码中这并不重要,但由于修复非常简单,我希望您从一开始就学会做正确的事情。)在代码中,它与75毫秒前的元素相同

还有一件事:不要重复你自己。如果您在同一个程序中反复编写同一段代码,或者只使用另一个变量,那么是时候将其移动到函数中了。然后,当您进行故障排除时,您还有一个地方可以查看,如果需要,还有一个地方可以应用修复

下面的例子无论如何都不是完美的。现代变体可能会使用,但在本例中我决定不使用,因为如果您不习惯,它们可能很难阅读

这是一个稍加改进的版本,它重复使用相同的函数来实现打字机的效果

//根据给定变量隐藏和显示名片的函数。
功能setBusinessCardVisible(可见性){
const elem=document.getElementById(“名片”);
elem.style.display=可见性?'block':'none';
}
//以对象和回调作为参数的通用打字机。
//arg对象具有:
//元素:文本应该附加到的元素
//cmd:应该添加的文本
//延迟:字符之间的延迟
函数打字机(arg,回调){
让index=0;//将此打字机的索引设置为0。
//拿一次elment,然后再继续。
arg.elem.textContent=arg.prompt;
常量长度=arg.cmd.length;
//使用setInteval启动一个将被调用的计时器
//直到用clearInterval清除为止
让定时器=设置间隔(
函数(){
//添加角色
arg.elem.textContent+=arg.cmd.charAt(索引);
//增加索引,看看我们是否完成了
如果(索引+>=长度){
clearInterval(计时器);//停止计时器
if(callback)callback();//如果指定,则调用callback
}
},
arg.延迟
);
}
//调用此函数以启动效果
函数开始类型(){
常数
elem1=document.getElementById('cmd1'),
elem2=document.getElementById('cmd2'),
delay=75,//在此处设置延迟,并在下面重复使用
cmdprompt1=”[dmeskin@code-u、 org~]$”,//第一部分:隐藏卡片。
cmdprompt2=”[dmeskin@code-u、 组织信息]$”;
elem1.textContent=cmdprompt1;
elem2.textContent=cmdprompt2;
//第一部分:隐藏卡片。
setBusinessCardVisible(false);//启动第一台打字机
打字机({
elem:elem1,
提示:cmdprompt1,
cmd:“cd信息和cat名片”,
延迟:延迟
},函数(){//第二部分,显示卡
setBusinessCardVisible(true);//启动secord打字机
setTimeout(函数(){
打字机({
elem:elem2,
提示:cmdprompt2,
cmd:“cat网站”,
延迟:延迟
},函数(){
setTimeout(函数(){
SetBusinessCard可见(假);
elem1.textContent=cmdprompt1;
elem2.textContent=cmdprompt2;
setTimeout(startTyping,2000);//2秒后重新启动
}, 2000);
})
},2000)//显示卡后延迟
});
}
a,
答:林克,
答:访问,,
a:悬停,
a:主动的{
颜色:蓝色;
}
身体{
背景色:#300A24;
颜色:白色;
字体系列:monospace;
}

[dmeskin@code-u、 org~]$

Daniel Notmylastname
NotmySchool的学生
系统管理员



[dmeskin@code-u、 组织信息]$


这里没有足够的代码来确定如何调用对象。(这不是有效的JavaScript)。请在问题本身中提供足够的代码,包括HTML,以便人们可以重现问题,而不必猜测缺失的部分。(你需要有一个链接,我可以提供链接吗