禁用页面上显示的所有keyup/keydown/keypressed事件

Mil*_*war 10 javascript jquery

我在我的页面上有很多关键事件.有没有办法禁用页面上的所有keyup/keydown/keypressed事件,而不是单独禁用每个事件.我正在寻找使用javascript/jquery的解决方案.

谢谢!!

Ant*_*ist 13

可以这样做,虽然我预计它在较大的页面上可能会非常慢:

$('*').off('keyup keydown keypress');
Run Code Online (Sandbox Code Playgroud)

这就是要去选择页面上的每一个元素,然后取出所有keyup,keydown以及keypress绑定到这些事件.

如果您想阻止用户使用该backspace键导航到上一页,您可以尝试以下代码:

var inputTags = ['INPUT', 'TEXTAREA'];

$(document).on('keypress', function(e) {
    if(e.which === 8 && $.inArray(e.target.tagName, inputTags) === -1)
        e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

这应该限制退格键的使用,除非在焦点是输入元素的情况下,您可以输入文本(例如<input type="text">a或a <textarea>).

看看这个工作演示.