当我编写事件监听器以将文本字段更改为输入字段的值时,我遇到的最大问题是,如果每个字段没有单独的事件监听器,我不知道如何做到这一点,而且它看起来非常难看。 val
变量或任何变体是文本字段,aV
、cV
或单字母变量是输入字段。
aV.addEventListener("keydown", function(ev){
if(ev.keyCode == 13){
avaL.textContent = aV.value;
};
});
cV.addEventListener("keydown", function(ev){
if(ev.keyCode == 13){
cvaL.textContent = cV.value;
};
});
a.addEventListener("keydown", function(ev){
if(ev.keyCode == 13){
aVal.textContent = a.value;
};
});
b.addEventListener("keydown", function(ev){
if(ev.keyCode == 13){
bVal.textContent = b.value;
};
});
c.addEventListener("keydown", function(ev){
if(ev.keyCode == 13){
cVal.textContent = c.value;
};
});
最佳答案
使用forEach
:
var elems = [aV, cV, a, b, c];
var boxes = [avaL, cvaL, aVal, bVal, cVal];
elems.forEach((elem, idx) => {
elem.addEventListener("keydown", function(ev) {
if (ev.keyCode == 13) {
boxes[idx].textContent = elem.value;
}
});
});
关于javascript - 尝试修复一些 DRY 事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55291043/