如果焦点位于文本字段和输入上,则启用/禁用击键

时间:2015-02-19 18:30:57

标签: javascript purejs-onepage-scroll

我在简单的投资组合页面上使用onepagescroll。我想添加空格键功能,并在插件中找到要修改的代码。

现在它使用空格键滚动,但是在测试页面上的联系表单后,我注意到在焦点位于textarea或输入时,与插件关联的所有键都不起作用。

如果我删除一个键的大小写,textarea按预期工作,我可以向上/向下/缩进空格,所以问题出在这段代码中:

    _keydownHandler = function(e) {
    var tag = e.target.tagName.toLowerCase();

    if (!_hasClass(body, "disabled-onepage-scroll")) {
        switch(e.which) {
            case 38:
                if (tag != 'input' && tag != 'textarea') moveUp(el)
                break;
            case 40:
                if (tag != 'input' && tag != 'textarea') moveDown(el)
                break;
            case 32:
                if (tag != 'input' && tag != 'textarea') moveDown(el)
                break;
            default: return;
        }
    }
    return false;
}

if(settings.keyboard == true) {
    document.onkeydown = _keydownHandler;
}
return false;
}

我一直试图绕过它,但我对js的了解有限,代码似乎有意义。在某处有错误还是我需要写一个else语句?

1 个答案:

答案 0 :(得分:0)

刚想出来,如果有其他人出现的话会发布答案。

if (!_hasClass(body, "disabled-onepage-scroll")) {
    switch(e.which) {
        case 38:
            if (tag != 'input' && tag != 'textarea') moveUp(el)
            break;
        case 40:
            if (tag != 'input' && tag != 'textarea') moveDown(el)
            break;
        case 32:
            if (tag != 'input' && tag != 'textarea') moveDown(el)
            break;
        default: return;
    } 
return true;  //add this
}
return false;