繁体   English   中英

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

[英]enable/disable keystrokes if focus is on textfield and input

我在一个简单的投资组合页面上使用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语句?

只是想出来,将发布答案,以防其他人出现。

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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM