默认情况下,当我们在document
上按下空格键时,它会向下滚动。为了防止默认行为,我们可以做以下操作:
$(document).keypress(function(event) {
event.preventDefault();
});
但是,当我们有特定的输入字段时,我们不能执行上述操作,因为它不允许我们在文本字段中键入。
我怎么能在不侵犯他人权利的情况下阻止空格键的默认操作呢!
您可以:
- 检查
event.target
以查看它是否是一个输入元素,如果它是或 - 将事件处理程序绑定到停止传播的输入元素
不过,我一开始不会破坏正常的滚动功能。
我最近遇到了同样的问题。显然,我是这样解决的:
$(document).keypress(function(event) {
if (
['input', 'textarea', 'select', 'button']
.indexOf(document.activeElement.tagName.toLowerCase()) == -1
) {
// Current focused element is NOT an input. Let's prevent scroll!
event.preventDefault();
// Now we can do various stuff.
} else {
// User is typing something into a focused input.
// Do NOT do anything here.
}
}