问题描述
因此,我想在按键1、2、3时更改游戏的灵敏度。但是,最后一个代码块不起作用(submitSensibilty.click)
let rangeField = document.querySelector("#sensibilty")
let submitSensibilty = document.querySelector("#validateSens")
let sensibilty = setInterval(loop,8) //Original value
function validateSens() {
clearInterval(sensibilty)
let changeSensibilty = parseFloat(rangeField.value)
switch (changeSensibilty) {
case 1: sensibilty = setInterval(loop,13); break //CHANGING IT WHEN RANGE VALUE = 1
case 2: sensibilty = setInterval(loop,8); break //CHANGING IT WHEN RANGE VALUE = 2
case 3: sensibilty = setInterval(loop,5); break //CHANGING IT WHEN RANGE VALUE = 3
default: alert("Sorry,a bug occured")}}
document.addEventListener('keydown',function(e) {
if (e.keyCode == 49) {rangeField.value = 1; submitSensibilty.click} //DOES NOT WORK
if (e.keyCode == 50) {rangeField.value = 2; submitSensibilty.click} //DOES NOT WORK
if (e.keyCode == 51) {rangeField.value = 3; submitSensibilty.click}}) //DOES NOT WORK
<button id="validateSens" onclick="validateSens()"> Submit </button>
<input type="range" id="sensibilty" min="1" max="3" value="2">
谢谢
解决方法
您未使用()
调用函数click
这是“固定”的代码
let rangeField = document.querySelector("#sensibilty")
let submitSensibilty = document.querySelector("#validateSens")
let sensibilty = setInterval(loop,8) //Original value
function validateSens() {
clearInterval(sensibilty)
let changeSensibilty = parseFloat(rangeField.value)
switch (changeSensibilty) {
case 1: sensibilty = setInterval(loop,13); break //CHANGING IT WHEN RANGE VALUE = 1
case 2: sensibilty = setInterval(loop,8); break //CHANGING IT WHEN RANGE VALUE = 2
case 3: sensibilty = setInterval(loop,5); break //CHANGING IT WHEN RANGE VALUE = 3
default: alert("Sorry,a bug occured")}}
document.addEventListener('keydown',function(e) {
if (e.keyCode == 49) {rangeField.value = 1; submitSensibilty.click()}
if (e.keyCode == 50) {rangeField.value = 2; submitSensibilty.click()}
if (e.keyCode == 51) {rangeField.value = 3; submitSensibilty.click()}})