Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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 keydown事件e.shiftKey+;e、 键码8星号_Javascript - Fatal编程技术网

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不是更好吗?如果找到,检查换档。按下?星号没按?你不应该做她/他的家庭作业。你的第一部分,在“这是我对计算器的尝试”之前,回答了这个问题;够了。你说的家庭作业是什么意思?哦,对不起,我只是在重读时注意到的。下次我一定要提高警惕。