试图修复一些DRY事件监听器

时间:2019-03-22 00:13:58

标签: javascript html

我在编写事件侦听器以将文本字段更改为输入字段的值时遇到的最大问题是,我不知道在没有单独的事件侦听器的情况下如何做到这一点,而且看起来非常难看。 val变量或任何变体是文本字段,而aVcV或单字母变量是输入字段。

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;
    };
});

1 个答案:

答案 0 :(得分:1)

使用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;
        }
    });
});