В настоящее время я решаю задачу для калькулятора в jQuery, и у меня есть эта проблема: Я хочу, чтобы кнопки моего калькулятора работали только с клавиатурой: как в - если я нажимаю кнопку цифра 8 на клавиатуре, номер 8 будет отображаться на экране. Мне удалось сделать это со знаками (цифры от 0 до 9, символы (+ - * /)), но я не знаю, как я могу вызвать желаемое действие из символов с клавиатуры. Как я могу сделать ссылку.Я хочу связать ключи в jquery
$(document).ready(function() {
var $calc = $("#calculator");
var $display = $("#display");
var $numbers = $("#numbers button");
var $operators = $("#operators button");
var $colspan = $(".colspan");
var init = 0;
var operand = init;
var operation = null;
var afterOperation = false;
var reset = function() {
$display.text(init);
operand = null;
operation = null;
}
$numbers.not($('#colspan')).click(function(event) {
event.preventDefault();
var currValue = parseFloat($display.text());
if(afterOperation == false) {
if($display.text() == init && $display.text().indexOf(',')<0) {
$display.text($(this).text());
} else {
$display.append($(this).text());
}
} else {
$display.text($(this).text());
afterOperation = false;
}
});
$(window).keypress(function(event) {
switch (event.key) {
case "1":
$display.append("1");
break;
case "2":
$display.append("2");
break;
case "3":
$display.append("3");
break;
case "4":
$display.append("4");
break;
case "5":
$display.append("5");
break;
case "6":
$display.append("6");
break;
case "7":
$display.append("7");
break;
case "8":
$display.append("8");
break;
case "9":
$display.append("9");
break;
case "0":
$display.append("0");
break;
case "+":
$display.append("+");
break;
case "-":
$display.append("-");
break;
case "/":
$display.append("/");
break;
case "*":
$display.append("*");
break;
case ",":
$display.append(",");
break;
case $.ui.keyCode.:
console.log("down");
break;
}
});
$operators.click(function(event) {
event.preventDefault();
var currValue = $(this).text();
var currOperand = parseFloat($display.text());
if(currValue != 'CE') {
if(operation != null && !afterOperation){
switch(operation) {
case '+':
$display.text(operand + currOperand);
break;
case '-':
$display.text(operand - currOperand);
break;
case '*':
$display.text(operand * currOperand);
break;
case '/':
if(currOperand != 0) {
$display.text(Number(operand/currOperand).toFixed(1));
} else {
alert("ERROR");
reset();
}
break;
}
}
}
if(currValue != '=') {
operation = currValue;
} else {
operation = null;
afterOperation = false;
return;
}
if(currValue != 'C') {
operation = currValue;
} else {
$display.text(init);
}
if(currValue != '←') {
operation = currValue;
} else {
$display.text($display.text().substring(0,$display.text().length-1));
}
if(operand = parseFloat($display.text())) {
afterOperation = true;
} else {
reset();
}
});
Также я хотел бы заменить знак точки, отображаемый на экране калькулятора запятой (в моем коде HTML знак для цифр является запятой, но на экране он отображается как точка, и когда я пытаюсь добавлять/вычитать числа с цифрами запятая прыгали и результаты неверны) Помощь
Почему бы просто не использовать поле ввода для этого? –