JavaScript keydown事件e.shiftKey+;e、 键码8星号
我正在为学校做一个项目,我正在写一个计算器。JavaScript keydown事件e.shiftKey+;e、 键码8星号,javascript,Javascript,我正在为学校做一个项目,我正在写一个计算器。 我已经到了编写keydown事件的地步,这些数字没有引起任何问题,但是我被%、*和+ 我在console.log中收到的输出是正确的-我每次按shift+8时都会得到星号*,而不是单独按shift或8时。但是我在#output.innerHTML中得到的是“*8”,因为我还有一个8号事件监听器,如上所示 function forDisplay(value) { document.getElementById("output&qu
我已经到了编写keydown事件的地步,这些数字没有引起任何问题,但是我被%、*和+ 我在console.log中收到的输出是正确的-我每次按shift+8时都会得到星号*,而不是单独按shift或8时。但是我在#output.innerHTML中得到的是“*8”,因为我还有一个8号事件监听器,如上所示
function forDisplay(value) {
document.getElementById("output").innerHTML += value;
}
document.addEventListener('keydown', (event)=>{
if(event.keyCode === 56 || event.keyCode === 104){
document.getElementById("output").innerHTML += 8
}
if(event.shiftKey && event.keyCode === 56){
console.log('*')
forDisplay('*')
}
})
有没有办法让代码也在输出中工作,因为它在console.log中工作正常?
谢谢 我看到你的问题了-当你按下Shift和8时,第一个
if
正在启动,第二个if
也在启动。只需先检查移位和8,然后添加一个else if
语句,以防条件不正确
document.addEventListener('keydown',(事件)=>{
if(event.shiftKey&&event.keyCode==56){
console.log(“*”)
document.getElementById(“输出”).innerHTML+=“*”;
}else if(event.keyCode==56 | | event.keyCode==104){
document.getElementById(“输出”).innerHTML+=8
}
})
不完全相关,但如果没有实时验证,计算器就很难实现。输入特定输入字符时解析输入的字符串(例如“=”)。大声说出逻辑,通常有助于发现简单错误。(0)如果keyCode为56或keyCode为104,则添加一个“8”(1)如果keyCode为56,则添加一个星号。你满足了两个条件。嗯?检查钥匙代码56不是更好吗?如果找到,检查换档。按下?星号没按?你不应该做她/他的家庭作业。你的第一部分,在“这是我对计算器的尝试”之前,回答了这个问题;够了。你说的家庭作业是什么意思?哦,对不起,我只是在重读时注意到的。下次我一定要提高警惕。