javascript – if-else语句太多了.他们可以成为全球性的吗?

我正在尝试简化此脚本.我有50个这样的e.keyCode语句,所以双嵌套如果/ else语句看起来很荒谬,但我所做的所有其他尝试都没有用.

第一个if / else语句if(e.keyCode == 66&& e.shiftKey)是必要的,但我不确定第二个if(typedAdjusted> = paperWidth%charWidth)是否会抛出警告相对于固定宽度,在一行上键入太多字符.

功能if(typedAdjusted> = paperWidth%charWidth)能否让我全球化?需要根据特定的keyCodes进行检查.例如,字母“B”应该写入typedAdjusted,而BACKSPACE和TAB和COMMAND不应该.

var typed = $("span.char").length;
var typedAdjusted = typed+1;
var paperWidth = 900;
var charWidth = 44;

if (e.keyCode  == 66)  {
    if (e.keyCode  == 66  && e.shiftKey)  {
        $('#charLine-1').append('<span class="char">B</span>');
        if (typedAdjusted  >= paperWidth % charWidth) {
            $('body').append('<span id="warning">WARNING!</span>');
        }
        else {
            return false;
        }
    } 
    else  {
        $('#charLine-1').append('<span class="char">b</span>');
        if (typedAdjusted  >= paperWidth % charWidth) {
            $('body').append('<span id="warning">WARNING!</span>');
        }
        else {
            return false;
        }        
    }
}
最佳答案
如果你喜欢检查每一个使用一个开关:根据需要调用checkKey函数传递事件.

function checklen() {
    var typed = $("span.char").length;
    var typedAdjusted = typed + 1;
    var paperWidth = 900;
    var charWidth = 44;
    return (typedAdjusted >= paperWidth % charWidth);
}

function checkKey(e) {
    var mychar = '';
    var checkit = false;
    switch (e.keyCode) {
    case 66:
        mychar = e.shiftKey ? 'B' : 'b';
        checkit = checklen();
        break;
    case 67:
        mychar = e.shiftKey ? 'C' : 'c';
        checkit = checklen();
        break;
    case 68:
        mychar = e.shiftKey ? 'D' : 'd';
        checkit = checklen();
        break;

    default:
        checkit = false;
        break;
    }
    if (!checkit) {
        $('#charLine-1').append('<span class="char">' + mychar + '</span>');
    }
    else {
        $('body').append('<span id="warning">WARNING!</span>');
    }
}

让它在整个文档上工作:

$(document).ready(function(){
  $(document).keydown(function(e) { 
     checkKey(e);
  });
});

然后只需点击页面并输入字符 – 请注意上面代码中的’b’,’c’,’d’.

转载注明原文:javascript – if-else语句太多了.他们可以成为全球性的吗? - 代码日志