Event Javascript



我在创建事件时遇到问题。我不想使用innerHTML,所以我尝试了不同的方法,但没有一个奏效。我正在制作计算器,我试图调用 nums 数组和 itm 作为数字持有者,但它不起作用。问题是如何在那里制作实际工作事件?对不起,如果我的帖子缺少信息,我希望你能原谅这一点。

新的,我一直在自己做很多研究,但我找不到解决方案。我想做的是让操作按钮像它们应该的那样工作。我找不到一种方法来存储我之前按下的按钮并对其进行操作。我要求一些提示来使其工作。

var nums = [
['7', '8', '9', 'C'],
['4', '5', '6', '+'],
['1', '2', '3', '-'],
['0', '.', '=']
];
var disp = document.getElementById('display');
var calc = document.getElementById('calc'),
row, itm;
function keyPress(e) {
console.log("Target:", e.target);
console.log("Content:", e.target.textContent);
console.log("Class:", e.target.className);
disp.textContent = e.target.textContent;
switch(e.target.textContent) {
case 'C':
disp.textContent = '0';
break;
case '+':
//here i have been trying different things to make it work
//but it seems i get the wrong idea all the time 
//this n1 is one of the vars i tried to save my numbers in
disp.textContent = n1 + e.target.textContent;
break;
case '-':
disp.textContent = '0';
break;
case '=':
disp.textContent = '0';
break;
}
}
for (let i = 0; i < 4; ++i) {
row = document.createElement('div');
for (let j = 0; j < nums[i].length; ++j) {
itm = document.createElement('div');
itm.textContent = nums[i][j];
if (nums[i][j] === '0')
itm.setAttribute('class', 'double');
itm.addEventListener('click', keyPress);
row.appendChild(itm);
}
calc.appendChild(row);
}
<body>
<div id="calc">
<div>
<div id="display">0</div>
</div>
</div>
<script src="script.js"></script>
</body>

你到底想实现什么?我猜你想在按下数组中的键时做某些事情。您可以执行以下操作:

function showKeycode(e) {
var key = e.keyCode;
switch(key) {
case 49:
console.log('1');
break;
case 50:
console.log('2');
break;
case 51:
console.log('3');
break;
case 52:
console.log('and so on...')
break;
}
}
document.addEventListener('keydown', showKeycode);

要获取某些字符的密钥代码,请使用'6'.charCodeAt(0)

最新更新