防止空格键的keydown上的默认值向下滚动而不影响文本输入

时间:2014-07-24 15:05:49

标签: javascript jquery events preventdefault

我不希望空格键导致页面滚动。 但我希望在输入或内容可编辑的div中按预期工作。

我尝试了类似的东西,但页面仍然向下滚动

$(document).on('keydown', function (e) {
        var $target = $(e.originalEvent.target);
        if (!$target.closest('[contenteditable="true"]') && !$target.closest('input')){
            e.preventDefault();
        }
    });

1 个答案:

答案 0 :(得分:1)

以下是获取焦点元素,检查输入或contenteditable以及空格键的示例。如果不满足条件,则阻止默认操作。

$(document).on("keypress", function(e) {
    var $focusElem = $(":focus");
    if(e.which == 32 && !($focusElem.is("input") || $focusElem.attr("contenteditable") == "true"))
        e.preventDefault();
});