-
Notifications
You must be signed in to change notification settings - Fork 3
/
calc.js
64 lines (58 loc) · 1.09 KB
/
calc.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
var calcEle = $('#calculator');
var resultEle = calcEle.find('.result')[0];
function updateResult(value){
resultEle.textContent = value;
}
var currentTotal = 0;
var lastVal = 0;
var nextOp;
function add(val){
currentTotal = currentTotal + val;
}
function minus(val) {
currentTotal = currentTotal - val;
}
function multiply(val){
currentTotal = currentTotal * val;
}
function divide(val){
if(val != 0){
currentTotal = currentTotal / val;
}
}
function handleNumber(val){
val = parseInt(val);
lastVal = val;
if(nextOp){
nextOp(val);
} else {
currentTotal = val;
}
if(updateResult){
updateResult(currentTotal);
}
}
function input(val) {
if(val === "C"){
currentTotal = 0;
if(updateResult){
updateResult(currentTotal);
}
} else if(val === "=" && nextOp) {
handleNumber(lastVal);
} else if(val === "+"){
nextOp = add;
} else if(val === "-") {
nextOp = minus;
} else if(val === "*") {
nextOp = multiply;
} else if(val === "/") {
nextOp = divide;
} else {
handleNumber(val);
}
}
calcEle.find('.cbutton').click(function(e){
var val = e.target.textContent;
input(val);
})