你有 22 个键,在key.each
循环中你一次又一次地绑定处理程序所以它执行 22 次。这意味着您的每个键都注册了 22 次相同的事件。因此,请考虑您所拥有的互惠情况。您正在从文本框中获取值并将其转换为它的倒数,这样一次,您就很好了。但它发生了 22 次,因此对相同值的偶数互逆运算本身返回相同的值。你也不需要使用eval
. 只要做正确的操作。还要记住 javascript 执行浮点算术运算。
key.each(function () {
if (!$(this).is(functions)) {
$(this).on("click", function () {
var number = $(this).text();
// Inserts value of clicked button into the input
textBox.val(textBox.val() + number);
});
}
}); //<-- end it here
var clear = $(".row li.clear"),
backspace = $(".row li.back"),
equals = $(".row li.equals"),
inverse = $(".row li.inverse");
clear.on("click", function () {
// Clears the input value if the clear button is clicked
textBox.val('');
});
backspace.on("click", function () {
// Removes last character of input
});
equals.on("click", function () {
$("#function").text(textBox.val());
// Evaluates what is in the input
setTimeout(function () {
// Sets that to the value
textBox.val(eval(textBox.val()));
}, 1);
});
inverse.on("click", function () {
var val = textBox.val(),
text = parseFloat(val),
recip = eval(1 / text);
textBox.val(recip);
});